InfoGrab DocsInfoGrab Docs

엔드투엔드 테스트 파이프라인

GitLab의 엔드투엔드(E2E) 테스트 파이프라인 아키텍처, 구성 요소, 그리고 새 job 추가 방법을 설명합니다.

공통 아키텍처 # 모든 E2E 테스트는 별도의 하위 파이프라인 내에서 실행됩니다. E2E 테스트 파이프라인의 다양한 동적 기능을 지원하기 위해, 모든 하위 파이프라인 YAML 파일은 e2e-test-pipeline-generate CI/CD job에 의해 생성되며, 각각의 트리거 job에 의해 실행됩니다. e2e-test-pipeline-generate # e2e-test-pipeline-generate job은 E2E 테스트를 실행하는 하위 파이프라인을 트리거하는 데 사용되는 CI/CD YAML 파일 정의를 생성합니다. generate_e2e_pipelines Rake 태스크는 다음을 수행합니다: 특정 머지 리퀘스트 파이프라인에서 실행해야 할 e2e 스펙을 결정합니다. 각 E2E 테스트 파이프라인 유형에 대한 CI/CD YAML 파일 정의를 생성합니다. 이 Rake 태스크는 다음을 수행합니다: 특정 머지 리퀘스트의 변경 사항을 분석하고, 다음 기준 을 사용하는 선택적 테스트 실행을 통해 어떤 스펙을 실행해야 하는지 결정합니다. 이를 바탕으로 모든 시나리오 의 dry-run 이 실행되어 시나리오에 실행 가능한 테스트가 포함되어 있는지 확인합니다. 각 시나리오의 총 실행 시간이 계산됩니다. 실행 시간 값을 기반으로, 동적 job 스케일링 이 각 시나리오 유형에 필요한 병렬 CI/CD job 수를 계산하고 적절한 값으로 파이프라인 YAML 파일을 생성합니다. e2e:perf-on-cng # e2e:perf-on-cng 하위 파이프라인은 Cloud Native GitLab 설치 환경에 대해 테스트를 실행합니다. 배포는 orchestrator CLI 도구로 관리되며, 이를 사용하여 CI/CD 배포를 로컬에서 재현할 수도 있습니다. e2e:perf-on-cng 하위 파이프라인은 머지 리퀘스트에서 실행되며 non-blocking job입니다. 테스트가 실패해도 머지 리퀘스트 병합을 차단하지 않습니다. Setup # 이 E2E 테스트 하위 파이프라인은 e2e-test-pipeline-generate CI/CD job의 아티팩트로 저장된 동적으로 생성된 CI/CD YAML 파일을 사용하여 e2e:perf-on-cng job에 의해 트리거됩니다. CI/CD YAML 파일은 템플릿 을 사용하여 생성됩니다. 하위 파이프라인 job # 하위 파이프라인은 E2E 테스트 실행을 지원하는 여러 Stage로 구성됩니다. .pre # build-cng-env job은 CNG 다운스트림 파이프라인을 위한 모든 환경 변수를 설정합니다. build-cng job은 필요한 모든 이미지를 빌드하는 CNG 다운스트림 파이프라인을 트리거합니다. prepare # dotenv-vars job은 모든 k6 성능 테스트로 구성된 qa/performance_test 폴더에서 아티팩트를 생성합니다. 이 아티팩트는 테스트를 실행하기 위해 다운스트림 파이프라인 job에 의해 다운로드됩니다. 또한 job 정의 에서 볼 수 있듯이 CI_JOB_NAME , CI_JOB_ID , GITLAB_HEL