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

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