เมื่อชุดทดสอบมีขนาดใหญ่หรือเวลาดำเนินการนาน เราเสนอตัวเลือกในการแยกการทดสอบไปยังอุปกรณ์หลายเครื่อง ซึ่งเรียกว่าการแยกข้อมูล
การชาร์ดดิ้งมีข้อกำหนดเบื้องต้น สำหรับตัวดำเนินการทดสอบ เพื่อรองรับการชาร์ดดิ้ง
เครื่องมือทดสอบหลักส่วนใหญ่รองรับการแยกกลุ่มอยู่แล้ว จึงไม่ต้องดำเนินการเพิ่มเติม เครื่องมือเหล่านี้รองรับการชาร์ดอยู่แล้ว ได้แก่ การทดสอบการใช้เครื่องมือ การทดสอบที่ขับเคลื่อนด้วยฝั่งโฮสต์อย่าง GTest
การชาร์ดที่เรารองรับใน Tradefed มี 2 ประเภท ได้แก่ แบบในพื้นที่และแบบกระจาย เครื่องมือเหล่านี้มีความคล้ายคลึงกันบางอย่าง ดังนั้นหน้านี้จะอธิบายถึงพร็อพเพอร์ตี้ทั่วไปและรายละเอียดของแต่ละรายการ
พร็อพเพอร์ตี้ทั่วไป
การจัดสรรทั้ง 2 รูปแบบใช้พร็อพเพอร์ตี้เดียวกันจากโปรแกรมทดสอบ ซึ่งก็คือกลุ่มต้องอิสระและกำหนดได้ ขั้นตอนแรกของการแยกกลุ่มทั้ง 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