กำหนดค่าการแบ่งกลุ่ม

หน้านี้อธิบายสิ่งที่เป็นไปได้ในการปรับแต่งโมดูล ( AndroidTest.xml ) ผ่านการชาร์ดดิ้ง และรับประสิทธิภาพความเร็วสูงสุดระหว่างการดำเนินการอย่างต่อเนื่องในห้องปฏิบัติการ เราจะพยายามอธิบายตัวเลือกในลักษณะทั่วไปพร้อมเหตุผลในการใช้แต่ละตัวเลือก

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

เฉือนได้หรือไม่ได้?

สามารถติดแท็กโมดูล ( AndroidTest.xml ) ด้วย <option name="not-shardable" value="true" /> เพื่อแจ้งให้สายรัดทราบว่าไม่ควรแยกส่วน

ในโมดูลทั่วไป การปล่อยให้สายรัดแยกชิ้นส่วนโมดูลของคุณ (ลักษณะการทำงานเริ่มต้น) เป็นสิ่งที่ควรทำ แต่ในบางกรณี คุณอาจต้องการแทนที่พฤติกรรมนั้น:

  • เมื่อค่าติดตั้งโมดูลของคุณมีราคาแพง:

การชาร์ดโมดูลส่งผลให้การเตรียมการ (ติดตั้ง APK, ไฟล์พุช ฯลฯ) อาจทำงานหนึ่งครั้งต่ออุปกรณ์ที่เกี่ยวข้อง หากการตั้งค่าโมดูลของคุณใช้เวลานานและมีราคาแพง และไม่คุ้มที่จะทำซ้ำเมื่อเทียบกับรันไทม์ของการทดสอบ คุณควรติดแท็กโมดูลของคุณว่าไม่สามารถแบ่งส่วนได้

  • เมื่อจำนวนการทดสอบในโมดูลของคุณต่ำ:

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

การทดสอบเครื่องมือ: จำนวนเศษสูงสุด?

การทดสอบเครื่องมือที่ทำงานผ่าน AndroidJUnitTest จะไม่เปิดเผยจำนวนการทดสอบที่เป็นส่วนหนึ่งของเครื่องมือจนกว่าเราจะติดตั้งและเรียกใช้ APK จริง การดำเนินการเหล่านี้มีค่าใช้จ่ายสูงและไม่สามารถดำเนินการได้ในเวลาการแบ่งส่วนสำหรับโมดูลทั้งหมดของชุดโปรแกรม

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

ดังนั้นเมื่อจำนวนการทดสอบใน APK การทดสอบเครื่องมือวัดต่ำ การติดแท็กโมดูลด้วย <option name="not-shardable" value="true" /> จะทำให้ Harness รู้ว่าการแบ่งโมดูลนั้นไม่คุ้มค่า

นักวิ่ง AndroidJUnitTest มีตัวเลือกพิเศษที่อนุญาตให้ระบุจำนวนสูงสุดของเศษที่อนุญาตให้ใส่เศษ: <option name="ajur-max-shard" value="5" />

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

ตัวอย่างเช่น หาก APK การทดสอบเครื่องมือวัดของคุณมีกรณีทดสอบเพียง 2 กรณี แต่คุณยังต้องการชาร์ดมัน การมีค่า ajur-max-shard 2 จะช่วยให้แน่ใจว่าคุณไม่ได้สร้างชาร์ดเปล่า