หน้านี้อธิบายสิ่งที่เป็นไปได้ในการปรับแต่งโมดูล ( 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
จะช่วยให้แน่ใจว่าคุณไม่ได้สร้างชาร์ดเปล่า