엔드-투-엔드 테스트
GitLab의 엔드-투-엔드(E2E) 테스트 전략, 테스트 실행 방법, 작성 방법 및 인프라 구성에 대해 설명합니다.
엔드-투-엔드 테스트 개요 # 엔드-투-엔드(e2e) 테스트는 함께 동작하도록 설계된 모든 마이크로서비스와 구성 요소의 통합을 포함하여, 애플리케이션이 전체 소프트웨어 스택과 아키텍처 전반에서 기대한 대로 동작하는지 확인하는 전략입니다. GitLab 테스트 방식 # GitLab은 다음과 같이 테스트합니다. CNG 로 GitLab 클라우드 네이티브 패키지를 빌드합니다. orchestrator CLI 도구로 이 패키지를 배포해 E2E 테스트를 실행할 GitLab 인스턴스를 띄웁니다. 또한 테스트 피드백을 더 빨리 받기 위해 빠르게 배포할 수 있는 테스트 환경으로 GitLab Development Kit (GDK)를 사용합니다. 나이틀리 빌드 테스트 # Omnibus가 만든 나이틀리 빌드를 테스트하기 위해 매일 밤 예약 파이프라인을 실행합니다. 이 파이프라인은 https://gitlab.com/gitlab-org/gitlab/-/pipeline_schedules 에서 확인할 수 있습니다(Developer 권한 필요). 결과는 #e2e-run-master Slack 채널에 보고됩니다. 스테이징 테스트 # 스테이징을 테스트하기 위해 매일 밤 예약 파이프라인을 실행합니다. 이 파이프라인은 https://gitlab.com/gitlab-org/quality/staging/pipelines 에서 확인할 수 있습니다(Developer 권한 필요). 결과는 #e2e-run-staging Slack 채널에 보고됩니다. 머지 리퀘스트에서 코드 테스트 # 엔드-투-엔드 테스트 파이프라인 문서는 머지 리퀘스트 안에서 E2E 테스트를 실행하는 파이프라인 구성을 설명합니다. test-on-omnibus job 사용 # qa 스테이지의 e2e:test-on-omnibus-ee 수동 작업을 실행하면 머지 리퀘스트에 대해 엔드-투-엔드 테스트를 실행할 수 있습니다(포크에서는 사용할 수 없습니다). 이 작업은 머지 리퀘스트의 변경 사항으로 빌드한 커스텀 EE(Ultimate 라이선스 포함) Docker 이미지를 대상으로 엔드-투-엔드 테스트를 실행합니다. 엔드-투-엔드 테스트를 시작하는 수동 작업은 gitlab-org/omnibus-gitlab 머지 리퀘스트 에서도 제공됩니다. 머지 결과 파이프라인 사용 # 머지 결과 파이프라인에서는 소스 브랜치와 대상 브랜치를 병합한 결과를 담은 새 ref에서 파이프라인이 실행됩니다. 머지 결과 파이프라인의 엔드-투-엔드 테스트는 머지 리퀘스트 소스 브랜치의 HEAD 대신 이 새 ref를 사용합니다. Mermaid 다이어그램 (9줄) 소스 코드 보기 graph LR A["x1y1z1 - master HEAD"] B["d1e1f1 - merged results (CI_COMMIT_SHA)"] A --> B B --> C["Merged results pipeline"] C --> D["E2E tests"] 커스텀 테스트 실행 # 다운스트림 gitlab-qa-mirror 파이프라인에서 실행되는 기존 시나리오 에는 많은 테스트가 포함되어 있지만