Chromium Chronicle #14: 폭포식 구조에 테스트 추가

에피소드 14: MTV의 Zhaoyang Li, TOK의 Eric Aleshire (2020년 10월)
이전 에피소드

Chrome의 새 기능에 대한 성능 저하를 감지하시겠습니까? 폭포식 구조 테스트 (Chrome의 지속적 빌드 및 테스트 인프라)를 지원합니다.

Chrome의 폭포식 구조에는 다양한 지원합니다 이 도움말에서는 테스트 모음을 기존 테스트 모음에 추가하는 방법을 설명합니다. 생성합니다. 계속하기 전에 다음 질문을 고려하세요.

새로운 테스트를 새로운 도구 모음에 추가해야 하나요, 아니면 기존 도구 모음에 추가해야 하나요?

  • 테스트는 소스 위치와 테마의 근접성을 기준으로 테스트 모음에 구성됩니다. 새 테스트를 기존 테스트 모음에 논리적으로 적용할 수 없다면 새로운 도구 모음이 필요합니다.

테스트는 공개 빌더에서 실행해야 하나요, 내부 빌더에서 실행해야 하나요?

  • 코드가 내부 저장소에 있는 경우 내부 빌더를 사용합니다. 또는 테스트에는 기밀 데이터가 포함됩니다.

테스트는 FYI CI, 기본 CI 또는 커밋 큐(CQ)에서 실행해야 하나요?

  • FYI CI는 자체 모니터링이 필요하며 테스트 개선 또는 있습니다.
  • 보안관이 주요 CI 테스트를 정기적으로 모니터링합니다.
  • 실패 시 CQ는 CL 제출을 차단하지만 더 많은 인프라 리소스를 사용합니다. 새 도구 모음은 항상 CQ로 승격되기 전에 CI에서 시작해야 합니다.
  • 확실하지 않다면 사용 중인 플랫폼의 엔지니어링팀에 문의하여 결정하세요.

CI에서 이미 실행 중인 테스트 모음이 있습니다. CQ에 추가하려면 어떻게 해야 하나요? / 내가 새로운 빌더가 필요하신가요?

기존 빌더에 테스트 모음을 추가하는 방법

기존 빌더에 테스트 모음을 추가하려면 일부 파일을 구성해야 합니다. //src/testing/buildbot/에서:

  1. gn_isolate_map.pyl에서 새 테스트 모음의 키를 만듭니다. 테스트 타겟 라벨 및 유형 정보로 구성되어 있습니다
  2. test_suites.pyl테스트 그룹에 키를 추가합니다. (빌더 이름에서 빌더의 테스트 그룹으로의 매핑은 waterfalls.pyl)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. 더 많은 미세 조정

    • mixins.pyl에는 다음과 같은 인수가 포함되어 있습니다. 다양한 그룹 수준의 테스트 그룹에 적용할 수 있습니다.
    • variants.pyl를 사용하면 여러 인스턴스에서 도구 모음 실행 가능 사용할 수 있습니다.
  4. 다음을 실행하여 구성 파일을 재생성합니다. generate_buildbot_json.py

그런 다음에는 구성 변경사항을 체크인하기만 하면 됩니다. 이 도구 모음을 실행하는 빌더가 자동으로 새 테스트를 선택합니다. 다음 위치에 빌더의 결과가 웹 인터페이스에서 전달되기 시작합니다. 폭포식 구조 - 실패 시 충분한 디버그 정보로 완성하십시오!