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