กำหนดค่าการแชร์

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