엔드-투-엔드 테스트
GitLab의 엔드-투-엔드(E2E) 테스트 전략, 테스트 실행 방법, 작성 방법 및 인프라 구성에 대해 설명합니다.
엔드-투-엔드 테스트란 무엇인가요? # 엔드-투-엔드(e2e) 테스트는 함께 동작해야 하는 모든 마이크로서비스 및 컴포넌트의 통합을 포함하여, 전체 소프트웨어 스택과 아키텍처에 걸쳐 애플리케이션이 예상대로 동작하는지 확인하기 위한 전략입니다. GitLab은 어떻게 테스트하나요? # GitLab을 테스트하기 위해 다음을 수행합니다: CNG 를 사용하여 GitLab Cloud Native 패키지를 빌드합니다. 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 Stage의 e2e:test-on-omnibus-ee 수동 액션을 트리거하여 머지 리퀘스트에 대한 엔드-투-엔드 테스트를 실행할 수 있습니다(포크에서는 사용 불가). 이 작업은 머지 리퀘스트의 변경 사항으로 빌드된 커스텀 EE(Ultimate 라이선스 포함) Docker 이미지에 대해 엔드-투-엔드 테스트를 실행합니다. 엔드-투-엔드 테스트를 시작하는 수동 액션은 gitlab-org/omnibus-gitlab 머지 리퀘스트 에서도 사용할 수 있습니다. 머지 결과 파이프라인 사용 # 머지 결과 파이프라인에서는 소스 브랜치와 타깃 브랜치의 머지 결과가 포함된 새 ref에서 파이프라인이 실행됩니다. 머지 결과 파이프라인의 엔드-투-엔드 테스트는 머지 리퀘스트 소스 브랜치의 헤드 대신 새 ref를 사용합니다. 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 파이프라인에서 실행되는 기존 시나리오 에는 많은 테스트가 포함되어 있지만, 기존 시