หน้านี้อธิบายสิ่งที่เป็นไปได้ที่จะปรับแต่งสำหรับโมดูลชุด ( AndroidTest.xml
) ผ่านการชาร์ดและรับประสิทธิภาพความเร็วที่ดีที่สุดระหว่างการดำเนินการต่อเนื่องในห้องปฏิบัติการ เราจะพยายามอธิบายตัวเลือกในลักษณะทั่วไปโดยมีเหตุผลในการใช้งานแต่ละตัวเลือก
เมื่อเรียกใช้ชุดโปรแกรมอย่างต่อเนื่องในห้องปฏิบัติการ โดยปกติชุดอุปกรณ์จะถูกแบ่งส่วนในอุปกรณ์หลายเครื่องเพื่อลดเวลาการทำงานโดยรวมให้เสร็จสิ้น โดยทั่วไป สายรัดจะพยายามปรับสมดุลเวลาดำเนินการของแต่ละส่วนแบ่งข้อมูล เพื่อลดเวลาการทำงานโดยรวมให้เสร็จสิ้น (เมื่อส่วนย่อยสุดท้ายเสร็จสิ้น) แต่เนื่องจากลักษณะของการทดสอบบางอย่าง เราจึงไม่มีวิปัสสนาเพียงพอเสมอไป และต้องการให้เจ้าของโมดูลปรับพฤติกรรมบางอย่าง
ชาร์ดได้หรือไม่ชาร์ดได้?
เป็นไปได้ที่จะแท็กโมดูล ( AndroidTest.xml
) ด้วย <option name="not-shardable" value="true" />
เพื่อแจ้งสายรัดว่าไม่ควรแยกส่วน
ในโมดูลทั่วไป การปล่อยให้สายรัดแยกโมดูลของคุณ (ลักษณะการทำงานเริ่มต้น) เป็นสิ่งที่ควรทำ แต่ในบางกรณี คุณอาจต้องการแทนที่พฤติกรรมนั้น:
- เมื่อการตั้งค่าโมดูลของคุณมีราคาแพง:
การแบ่งโมดูลส่งผลให้เกิดการจัดเตรียม (ติดตั้ง APK, ไฟล์พุช ฯลฯ) อาจทำงานหนึ่งครั้งต่ออุปกรณ์ที่เกี่ยวข้อง หากการตั้งค่าโมดูลของคุณใช้เวลานานและมีราคาแพง และไม่คุ้มที่จะทำซ้ำเมื่อเปรียบเทียบกับรันไทม์ของการทดสอบ คุณควรแท็กโมดูลของคุณว่าไม่สามารถแบ่งส่วนได้
- เมื่อจำนวนการทดสอบในโมดูลของคุณเหลือน้อย:
การแบ่งโมดูลส่งผลให้เกิดกรณีทดสอบทั้งหมดที่อาจดำเนินการอย่างอิสระบนอุปกรณ์ต่างๆ สิ่งนี้เกี่ยวข้องกับประเด็นแรก หากจำนวนการทดสอบของคุณต่ำ คุณอาจจบลงด้วยการทดสอบเพียงครั้งเดียวหรือไม่มีการทดสอบในชาร์ดบางส่วน ซึ่งจะทำให้ขั้นตอนการเตรียมการใดๆ ค่อนข้างแพง การติดตั้ง APK สำหรับกรณีทดสอบเดียวมักจะไม่คุ้มค่า ตัวอย่างเช่น
การทดสอบเครื่องมือวัด: จำนวนชาร์ดสูงสุด?
การทดสอบเครื่องมือวัดที่ทำงานผ่าน AndroidJUnitTest จะไม่เปิดเผยให้สายรัดทราบว่ามีการทดสอบกี่ชุดที่เป็นส่วนหนึ่งของเครื่องมือวัด จนกว่าเราจะติดตั้งและเรียกใช้ APK จริงๆ การดำเนินการเหล่านี้มีค่าใช้จ่ายสูงและไม่สามารถดำเนินการได้ในเวลาชาร์ดสำหรับโมดูลทั้งหมดที่อยู่ในชุด
บังเหียนอาจทำการทดสอบเครื่องมือมากเกินไปและจบลงด้วยชิ้นส่วนที่ว่างเปล่า การแบ่งกลุ่มการทดสอบเครื่องมือวัดด้วยการทดสอบห้ารายการในหกส่วนแบ่งข้อมูลส่งผลให้มีการแบ่งกลุ่มย่อยห้าส่วนโดยมีการทดสอบหนึ่งรายการและส่วนย่อยหนึ่งรายการที่ไม่มีการทดสอบ ชาร์ดเหล่านี้แต่ละส่วนจะต้องมีการติดตั้ง APK ที่มีราคาแพง
ดังนั้นเมื่อจำนวนการทดสอบใน APK ของการทดสอบเครื่องมือวัดเหลือน้อย การติดแท็กโมดูลด้วย <option name="not-shardable" value="true" />
จะช่วยให้สายรัดรู้ว่าการแบ่งส่วนโมดูลนั้นไม่คุ้มค่า
ตัวรัน AndroidJUnitTest
มีตัวเลือกพิเศษที่อนุญาตให้ระบุจำนวนชาร์ดสูงสุดที่อนุญาตให้ชาร์ดลงใน: <option name="ajur-max-shard" value="5" />
วิธีนี้ช่วยให้คุณระบุจำนวนครั้งสูงสุดที่การแบ่งส่วนข้อมูลเครื่องมือวัดได้ โดยไม่คำนึงถึงจำนวนส่วนแบ่งข้อมูลที่ขอที่ระดับการเรียกใช้ โดยค่าเริ่มต้น เครื่องมือวัดจะถูกแบ่งย่อยเป็นจำนวนชาร์ดที่ร้องขอสำหรับการเรียกใช้
ตัวอย่างเช่น หาก APK การทดสอบเครื่องมือของคุณมีเพียงสองกรณีทดสอบ แต่คุณยังคงต้องการชาร์ด ค่า ajur-max-shard
เป็น 2
จะช่วยให้แน่ใจว่าคุณจะไม่ได้สร้างชาร์ดที่ว่างเปล่า