ทดสอบการแยกข้อมูล

เมื่อชุดทดสอบมีขนาดใหญ่หรือเวลาดำเนินการนาน เราเสนอตัวเลือกในการแยกการทดสอบไปยังอุปกรณ์หลายเครื่อง ซึ่งเรียกว่าการแยกข้อมูล

การชาร์ดดิ้งมีข้อกำหนดเบื้องต้น สำหรับตัวดำเนินการทดสอบ เพื่อรองรับการชาร์ดดิ้ง

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