The Chromium Chronicle #14: การเพิ่มการทดสอบให้กับ Waterfall

ตอนที่ 14: โดย Zhaoyang Li ใน MTV และ Eric Aleshire in TOK (ตุลาคม 2020)
ตอนก่อนหน้า

หากต้องการตรวจหาการถดถอยของฟีเจอร์ใหม่ใน Chrome เพิ่มการทดสอบลงใน Waterfall (โครงสร้างพื้นฐานการสร้างและทดสอบอย่างต่อเนื่องของ Chrome)

มีเครื่องมือสร้างมากมายใน Waterfall ของ Chrome ที่ทำการทดสอบบนแพลตฟอร์มต่างๆ บทความนี้อธิบายวิธีเพิ่มชุดทดสอบให้กับเครื่องมือสร้างที่มีอยู่ ก่อนดำเนินการต่อ ให้พิจารณาคำถามเหล่านี้

ควรนำการทดสอบใหม่ไปใส่ไว้ในชุดโปรแกรมใหม่หรือควรเพิ่มการทดสอบใหม่ในชุดที่มีอยู่แล้ว

  • การทดสอบจะจัดเป็นชุดทดสอบตามความใกล้เคียงของตำแหน่งต้นทางและธีม หากการทดสอบใหม่ไม่ตรงกับชุดโปรแกรมที่มีอยู่ คุณอาจใช้ชุดการทดสอบใหม่

ควรทดสอบกับเครื่องมือสร้างสาธารณะหรือเครื่องมือสร้างภายใน

  • ใช้เครื่องมือสร้างภายในหากโค้ดอยู่ในที่เก็บภายใน หรือการทดสอบเกี่ยวข้องกับข้อมูลลับ

การทดสอบควรทำงานใน FYI CI, CI หลัก หรือคิวคอมมิต(CQ) หรือไม่

  • FYI CI ต้องการการตรวจสอบด้วยตนเองของคุณและจะใช้สำหรับการทดสอบการปรับแต่งหรือการทดสอบ
  • การทดสอบ CI หลักจะได้รับการตรวจสอบเป็นประจำโดยนายอำเภอ
  • CQ บล็อกการส่ง CL เมื่อล้มเหลว แต่ใช้ทรัพยากรโครงสร้างพื้นฐานมากกว่า ชุดโปรแกรมใหม่ควรเริ่มต้นจาก CI ก่อนที่จะโปรโมตเป็น CQ เสมอ
  • หากไม่แน่ใจ ทีม EnngProd ของแพลตฟอร์มช่วยคุณตัดสินใจได้

ฉันมีชุดทดสอบที่ทำงานใน 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

หลังจากนั้น ก็ทำได้ง่ายๆ เพียงตรวจสอบการเปลี่ยนแปลงการกำหนดค่า เครื่องมือสร้างที่เรียกใช้ชุดโปรแกรมนี้จะรับการทดสอบใหม่โดยอัตโนมัติ และผลลัพธ์จะเริ่มเข้าสู่อินเทอร์เฟซเว็บสำหรับเครื่องมือสร้างใน Waterfall พร้อมด้วยข้อมูลการแก้ไขข้อบกพร่องจำนวนมากในกรณีที่เกิดข้อผิดพลาด