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