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