เมื่อคลังข้อมูลทดสอบมีขนาดใหญ่หรือใช้เวลาดำเนินการนาน เราจะเสนอตัวเลือก แยกการทดสอบในอุปกรณ์ต่างๆ ได้ ซึ่งก็คือการชาร์ด
การชาร์ดดิ้งมีข้อกำหนดเบื้องต้น สำหรับตัวดำเนินการทดสอบ เพื่อรองรับการชาร์ดดิ้ง
ตัวทดสอบหลักส่วนใหญ่รองรับการชาร์ดดิ้งอยู่แล้ว จึงไม่มีการสนับสนุนเพิ่มเติม ที่ต้องทำ เครื่องมือเหล่านี้รองรับการชาร์ดอยู่แล้ว ได้แก่ การทดสอบการใช้เครื่องมือ การทดสอบที่ขับเคลื่อนด้วยฝั่งโฮสต์อย่าง GTest
การชาร์ดที่เรารองรับใน Tradefed มี 2 ประเภท ได้แก่ แบบในพื้นที่และแบบกระจาย ซึ่งมีลักษณะคล้ายคลึงกันบางอย่าง ดังนั้นหน้านี้จะอธิบายคุณสมบัติทั่วไปและ จากนั้นจะระบุรายละเอียดเฉพาะของแต่ละตัวเลือก
พร็อพเพอร์ตี้ทั่วไป
การชาร์ดทั้งสองรูปแบบจะถือว่าคุณสมบัติเหมือนกันจากตัวดำเนินการทดสอบ ซึ่งก็คือชาร์ด ต้องเป็นแบบอิสระและเชิงกำหนด ขั้นตอนแรกของชาร์ดทั้งสองแบบคือ เพื่อสร้างรายการการทดสอบที่เรียงลำดับทั้งหมด แล้วแยกการทดสอบออกเป็น กลุ่ม/ชาร์ดต่างๆ
ความแตกต่างที่สำคัญของชาร์ดดิ้งแบบฟอร์มคือวิธีดำเนินการทดสอบ ดูรายละเอียดเพิ่มเติมในส่วนด้านล่าง
ชาร์ดดิ้งเฉพาะที่
การชาร์ดในเครื่อง หมายถึง อุปกรณ์ทั้งหมดที่เกี่ยวข้องกับการใช้ชาร์ด คำขอเชื่อมต่อกับโฮสต์จริงเดียวกัน
การลงมือปฏิบัติ
การชาร์ดดิ้งในเครื่องจะใช้ประโยชน์จากอุปกรณ์ทั้งหมดที่เชื่อมต่อกับเครือข่ายเดียวกัน โดยการสร้างกลุ่มการทดสอบที่ต้องทำ และให้ การทดสอบตามการสำรวจอุปกรณ์เมื่อไม่มีค่าใช้จ่าย (ซึ่งทำกับการทดสอบก่อนหน้านี้) วิธีนี้ช่วยเพิ่มประสิทธิภาพการใช้งานอุปกรณ์ หรือที่เราเรียกว่า ชาร์ดดิ้งแบบไดนามิก
ตัวเลือก
--shard-count XX
ชาร์ดดิ้งแบบกระจาย
การชาร์ดดิ้งแบบกระจาย หมายถึงอุปกรณ์ทั้งหมดที่เกี่ยวข้องกับการดำเนินการของ การเรียกใช้แบบชาร์ดสามารถทำได้ในทุกที่และเชื่อมต่อกับแท็ก ผู้จัดรายการ
การลงมือปฏิบัติ
การชาร์ดดิ้งแบบกระจายจะเกิดขึ้นเมื่อสร้างรายการการทดสอบ และเนื้อหาของ ชาร์ดแต่ละรายการจะเรียกใช้เฉพาะชาร์ดที่ขอในปัจจุบันเท่านั้น เอาละ ชาร์ดที่กระจายออกจะสร้างรายการเดียวกันขึ้นในตอนแรก จากนั้นเรียกใช้ ซึ่งเป็นชุดย่อยของชุดย่อยนี้ ซึ่งส่งผลให้มีการดำเนินการทดสอบทั้งหมด
คุณสมบัติหลักของแบบฟอร์มนี้ซึ่งก็คือชาร์ดนั้นไม่รู้จักแต่ละชาร์ดโดยสิ้นเชิง และอาจล้มเหลวได้ด้วยตัวเอง
ข้อเสียหลักคือความยาวของชาร์ดอาจไม่ได้ทำให้สมดุลกันเสมอไป เนื่องจากเราไม่สามารถคาดการณ์ล่วงหน้าเกี่ยวกับรันไทม์ของการทดสอบแต่ละครั้งในชาร์ดแต่ละรายการ การกระจายนี้จะมีจำนวนกรอบการทดสอบเท่ากันโดยประมาณ ในชาร์ดแต่ละรายการ
ตัวเลือก
--shard-count XX --shard-index XX
ชาร์ดดิ้งโทเค็น
ชาร์ดดิ้งโทเค็นใช้ได้กับชาร์ดดิ้งในเครื่องเท่านั้น ธงคือ ใช้งานไม่ได้ในกรณีการใช้งานการชาร์ดดิ้งนอกพื้นที่ บางครั้งอุปกรณ์รายการใดรายการหนึ่ง ที่เกี่ยวข้องกับการชาร์ดดิ้งถือเป็นทรัพยากรพิเศษที่ผู้อื่นไม่มี เช่น ซิม การทดสอบบางอย่างอาจทำงานได้เมื่อทรัพยากรพิเศษนั้นพร้อมใช้งานและ ไม่เช่นนั้นก็จะล้มเหลว
การชาร์ดโทเค็นเป็นโซลูชันของเราสำหรับกรณีการใช้งานดังกล่าว โมดูลทดสอบสามารถ
ประกาศว่าต้องการทรัพยากรพิเศษใดในAndroidTest.xml
และ
การแลกซื้อจะนำทางการทดสอบไปยังอุปกรณ์ที่มีทรัพยากร
การกำหนดค่า XML
<option name="config-descriptor:metadata" key="token" value="SIM_CARD" />
value
ของโทเค็นตรงกับของ Tradefed
TokenProperty
และเชื่อมโยงกับเครื่องจัดการใน
TokenProviderHelper
วิธีนี้ทำให้สามารถเรียกใช้โมดูลทดสอบกับอุปกรณ์ที่ ดำเนินการทดสอบ
จะเกิดอะไรขึ้นหากไม่มีอุปกรณ์ใดทำการทดสอบได้
หากไม่มีอุปกรณ์ที่มีทรัพยากรตรงกับโมดูลทดสอบ โมดูลการทดสอบล้มเหลวและถูกข้ามเนื่องจากทำงานอย่างไม่ถูกต้อง
เช่น หากโมดูลทดสอบขอให้ซิมการ์ดทำงาน แต่ไม่มีอุปกรณ์ใดมีซิมการ์ด ซิมการ์ด โมดูลทดสอบล้มเหลว
การใช้งาน
ส่งแฟล็กฟีเจอร์นี้ไปยังบรรทัดคำสั่ง Tradefed หลัก:
--enable-token-sharding