Chromium Chronicle #14: Thêm thử nghiệm vào thác nước

Tập 14: của Zhaoyang Li trong MTV và Eric Aleshire trong TOK (tháng 10 năm 2020)
Các tập trước

Bạn muốn phát hiện lỗi hồi quy cho tính năng mới của mình trong Chrome? Thêm chương trình kiểm thử vào thác nước (cơ sở hạ tầng kiểm thử và bản dựng liên tục của Chrome)!

Có nhiều trình tạo trên thác nước của Chrome chạy kiểm thử trên nhiều nền tảng. Bài viết này mô tả cách thêm bộ kiểm thử vào một trình tạo hiện có. Trước khi tiếp tục, hãy cân nhắc những câu hỏi sau:

Bạn nên đưa các bài kiểm thử mới vào một bộ bài kiểm thử hoàn toàn mới hay chỉ bổ sung vào bộ bài kiểm thử hiện có?

  • Các hoạt động kiểm thử được sắp xếp trong các bộ kiểm thử theo mức độ gần của vị trí và giao diện nguồn. Nếu các chương trình kiểm thử mới của bạn không thể phù hợp với bất kỳ bộ kiểm thử nào hiện có, thì có thể bạn sẽ cần một bộ kiểm thử mới.

Thử nghiệm nên chạy trên trình tạo công khai hay trình tạo nội bộ?

  • Sử dụng trình tạo nội bộ nếu mã nằm trong kho lưu trữ nội bộ, hoặc các bài kiểm thử liên quan đến dữ liệu bảo mật.

Các bài kiểm thử nên chạy trong Đoạn thông tin công bố của bạn, CI chính hay hàng đợi cam kết(CQ)?

  • Xin lưu ý rằng CI cần bạn tự giám sát và dùng để tinh chỉnh hoặc thử nghiệm kiểm thử.
  • Các cảnh sát trưởng thường xuyên giám sát các cuộc thử nghiệm CI chính.
  • CQ chặn việc gửi CL khi không thành công nhưng tốn nhiều tài nguyên cơ sở hơn. Một bộ ứng dụng mới phải luôn bắt đầu từ CI trước khi được nâng cấp lên CQ.
  • Nếu bạn không chắc chắn, nhóm EngProd của nền tảng mà bạn sử dụng có thể giúp bạn quyết định.

Tôi đã có một bộ thử nghiệm trong CI, làm cách nào để thêm bộ thử nghiệm đó vào CQ? / Nếu tôi cần một trình tạo mới thì sao?

Cách thêm bộ kiểm thử vào trình tạo hiện có

Để thêm một bộ thử nghiệm vào một trình tạo hiện có, bạn cần định cấu hình một số tệp trong //src/testing/buildbot/:

  1. Tạo khoá trong gn_isolate_map.pyl cho bộ kiểm thử mới với thông tin về loại và nhãn mục tiêu kiểm thử.
  2. Thêm khoá đó vào một nhóm kiểm thử trong test_suites.pyl. (Bạn có thể tìm thấy mối liên kết từ tên trình tạo đến nhóm kiểm thử trên trình tạo trong waterfalls.pyl.)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Tinh chỉnh khác.

    • mixins.pyl chứa các đối số có thể áp dụng cho một nhóm kiểm thử ở nhiều cấp nhóm.
    • variants.pyl giúp chạy một bộ trong nhiều thực thể có các đối số khác nhau.
  4. Tạo lại tệp cấu hình bằng cách chạy generate_buildbot_json.py.

Sau đó, bạn chỉ cần kiểm tra các thay đổi về cấu hình của mình; các trình tạo đang chạy bộ công cụ này sẽ tự động chọn các kiểm thử mới và kết quả sẽ bắt đầu xuất hiện trên giao diện web cho trình tạo trên thác nước – đầy đủ với rất nhiều thông tin gỡ lỗi trong trường hợp thất bại!