GitLab QA 실행

다음 설명서는 클라우드 네이티브 GitLab 설치에 대해 GitLab QA를 실행하는 지침을 제공하는 것을 목적으로 합니다. 이러한 단계는 이 프로젝트의 CI의 일부로 수행되지만, 개발 중이거나 데모 중에 수동 실행을 요청할 수도 있습니다.

준비

GitLab QA를 실행하기 전에 몇 가지 작업이 있습니다.

실행 중인 GitLab 버전 확인

배포된 GitLab 차트에서 /admin으로 이동하여 실행 중인 GitLab 버전을 확인하십시오. X.Y.Z-pre라면 nightly 이미지를 사용해야 합니다. X.Y.Z-ee라면 이 버전의 GitLab QA 이미지를 사용해야 합니다.

관찰한 내용에 따라 GITLAB_VERSION을 내보냅니다:

export GITLAB_VERSION=11.0.3-ee

또는:

export GITLAB_VERSION=nightly

네트워크 액세스

GitLab QA를 실행하려면 배포된 인스턴스에 지속적인 네트워크 액세스가 필요합니다. 브라우저를 통해 배포 사이트에 방문하거나 cURL을 사용하여 이를 확인하십시오.

파이프라인에서 GitLab QA 실행

배포된 인스턴스에 대해 GitLab QA 테스트를 실행하려면 GitLab QA Executor를 사용할 수 있습니다. 이 프로젝트에는 로컬 머신에서 GitLab QA를 실행하는 수동 단계를 자동화하는 병렬화를 이용한 GitLab 환경에 대한 GitLab QA를 실행하는 CI 구성이 포함되어 있습니다.

로컬 머신에서 GitLab QA 실행

로컬 머신에서 배포된 인스턴스에 대해 GitLab QA를 실행하려면 아래 지침을 따르십시오.

gitlab-qa gem 설치

3.0 브랜치의 기능적인 버전의 Ruby가 있는지 확인한 후, gitlab-qa gem을 설치합니다:

gem install gitlab-qa

자세한 정보는 GitLab QA documentation를 참조하십시오.

Docker

GitLab QA는 Docker를 사용하므로 운영 중인 설치가 있어야 합니다. 데몬이 실행 중인지 확인하십시오. GITLAB_VERSION=nightly로 설정한 경우 최신 nightly가 테스트에 사용되도록 GitLab QA nightly 이미지를 가져오십시오.

docker pull gitlab/gitlab-ee-qa:$GITLAB_VERSION

구성

실행에 필요한 항목들은 환경 변수로 설정될 것입니다:

  • GITLAB_VERSION: 실행할 GitLab QA 버전. 위의 실행 중인 GitLab 버전 확인을 참조하십시오.
  • GITLAB_USERNAME: root가 될 것입니다.
  • GITLAB_PASSWORD: root 사용자의 암호가 될 것입니다.
  • GITLAB_ADMIN_USERNAME: root가 될 것입니다.
  • GITLAB_ADMIN_PASSWORD: root 사용자의 암호가 될 것입니다.
  • GITLAB_URL: 배포된 인스턴스의 완전히 지정된 URL입니다. 이는 https://gitlab.domain.tld 형식이어야 합니다.
  • EE_LICENSE: GitLab EE 라이센스를 포함하는 문자열입니다. export EE_LICENSE=$(cat GitLab.gitlab-license)를 통해 처리할 수 있습니다.

위의 항목들을 검색하여 환경 변수로 내보내십시오.

테스트 스위트 선택

GitLab QA에는 독립적인 환경에 대해 여러 테스트 스위트가 있습니다. 스위트는 다양한 RSpec metadata에 따라 테스트가 그룹화된 경우의 테스트입니다:

  • 스모크 스위트: 기본 기능이 작동하는지 빠르게 확인하기 위한 작은 일련의 빠른 end-to-end 기능 테스트
    • export QA_OPTIONS="--tag smoke"를 통해 이 스위트를 활성화합니다.
  • 스모크 및 블로킹 스위트: 주요 기능이 작동하는지 확인하기 위한 스모크 및 블로킹 테스트의 하위 집합
    • export QA_OPTIONS="--tag smoke --tag blocking --tag ~skip_live_env --tag ~orchestrated --tag ~github"를 통해 이 스위트를 활성화합니다.
  • 풀 스위트: 환경에 대해 모든 테스트를 실행합니다. 테스트 실행은 1시간 이상 소요됩니다.
    • 이 스위트를 활성화하려면 --tag ~skip_live_env --tag ~orchestrated --tag ~requires_praefect --tag ~github --tag ~requires_git_protocol_v2 --tag ~transient를 사용합니다.

테스트 스위트를 선택하는 것은 사용 사례에 따라 다릅니다. 대부분의 경우 스모크 및 블로킹 스위트를 실행하는 것이 빠르고 일관된 테스트 결과를 제공하며 좋은 테스트 커버리지를 제공할 것입니다. 이 스위트는 GitLab.com 배포에서 상식적인 검사로 사용됩니다.

풀 스위트는 환경에 대한 전체 테스트 결과를 얻기 위해 사용되어야 합니다. 이 스위트를 로컬 머신에서 실행하면 리소스를 많이 사용할 수 있습니다. 단일 머신에서 풀 스위트를 실행할 때 export CHROME_DISABLE_DEV_SHM=true를 사용하십시오.

실행

구성 단계에서 환경 변수를 설정하고 테스트 스위트를 선택했다고 가정하면, 다음 명령어는 배포된 GitLab 인스턴스에 대해 테스트를 수행할 것입니다:

gitlab-qa Test::Instance::Any EE:$GITLAB_VERSION $GITLAB_URL -- $QA_OPTIONS

참고: 위 명령은 현재 차트의 일부로 사용되는 컨테이너가 gitlab-(ee|ce) 리포지토리의 master 브랜치의 nightly 빌드를 기반으로 하고 있기 때문에 _nightly_로 실행합니다.