Chronicle Chromium nr 14: dodawanie testów do kaskady

Odcinek 14: Zhaoyang Li w MTV i Eric Aleshire w TOK (październik 2020 r.)
Poprzednie odcinki

Chcesz wykrywać regresje w przypadku nowej funkcji Chrome? Dodaj: z testami kaskady (czyli infrastruktury ciągłej kompilacji i testowania Chrome).

W kaskadzie Chrome jest wielu kreatorów, które przeprowadzają testy na różnych platform. Z tego artykułu dowiesz się, jak dodać zestaw testów do istniejącego . Zanim przejdziesz dalej, odpowiedz sobie na te pytania:

Czy nowe testy mają znajdować się w zupełnie nowym pakiecie czy tylko zostać dodane do już istniejącego?

  • Testy są uporządkowane w pakietach testowych według pobliżu lokalizacji źródła i tematu. Jeśli nowe testy nie pasują logicznie do żadnego z istniejących pakietów, potrzebują nowego pakietu.

Czy testy powinny być przeprowadzane w publicznym kreatorze czy wewnętrznym kreatorze?

  • Użyj wewnętrznego kreatora, jeśli kod znajduje się w wewnętrznym repozytorium. testy obejmują poufne dane.

Czy testy mają być uruchamiane w FYI CI, głównej aplikacji CI, czy w kolejce zatwierdzenia?

  • FYI CI wymaga samodzielnego monitorowania i służy do ulepszenia testu lub z eksperymentami.
  • Główne testy CI są regularnie monitorowane przez szeryfów.
  • CQ blokuje przesłanie listy zmian w przypadku niepowodzenia, ale pobiera więcej zasobów infrastruktury. Nowy pakiet powinien zawsze zacząć od CI przed awansowaniem do CQ.
  • Jeśli nie masz pewności, zespół EnngProd z Twojej platformy pomoże Ci w podjęciu decyzji.

Mam już pakiet testów uruchomiony w CI. Jak dodać go do CQ? / Co jeśli potrzebujesz nowego narzędzia?

Jak dodać pakiet testowy do istniejącego kreatora

Aby dodać pakiet testowy do istniejącego kreatora, musisz skonfigurować niektóre pliki w //src/testing/buildbot/:

  1. Utwórz klucz w gn_isolate_map.pyl dla nowego zestawu testów z testową etykietą celu i informacjami o typie.
  2. Dodaj ten klucz do grupy testowej w test_suites.pyl. Mapowanie z nazwy konstruktora na grupy testowe w kreatorze znajdziesz w waterfalls.pyl).

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Więcej szczegółów.

    • mixins.pyl zawiera argumenty, które: można zastosować w grupie testów na różnych poziomach grup.
    • variants.pyl ułatwia uruchamianie pakietu w wielu instancjach z różnymi argumentami.
  4. Ponowne generowanie plików konfiguracji przez uruchomienie generate_buildbot_json.py.

Potem wystarczy sprawdzić zmiany w konfiguracji. kreatory tego pakietu automatycznie wybiorą nowe testy, wyniki pojawią się w interfejsie internetowym kreatora na stronie W kaskadzie uwzględnij mnóstwo danych debugowania na wypadek niepowodzenia.