การทดสอบชาร์ดดิ้ง

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

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

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