กำหนดค่าชาร์ดดิ้ง

หน้านี้อธิบายสิ่งที่สามารถปรับแต่งสำหรับข้อบังคับของชุดโปรแกรม (AndroidTest.xml) ผ่านการแยกข้อมูลและรับประสิทธิภาพความเร็วที่ดีที่สุดในระหว่างการดำเนินการอย่างต่อเนื่องในห้องทดลอง เราจะพยายามอธิบายตัวเลือกต่างๆ ในลักษณะทั่วไปพร้อมเหตุผลในการใช้แต่ละตัวเลือก

เมื่อเรียกใช้ชุดทดสอบในแล็บอย่างต่อเนื่อง ชุดทดสอบมักจะมีการแบ่งออกเป็นหลายกลุ่มในอุปกรณ์ต่างๆ เพื่อลดเวลาโดยรวมในการดำเนินการให้เสร็จสมบูรณ์ โดยปกติแล้ว ฮาร์เนสจะพยายามปรับสมดุลเวลาในการดำเนินการของแต่ละกลุ่มเพื่อลดเวลาโดยรวมในการดำเนินการให้น้อยที่สุด (เมื่อกลุ่มสุดท้ายเสร็จสิ้น) แต่เนื่องจากลักษณะการทดสอบบางอย่าง เราจึงไม่สามารถตรวจสอบข้อมูลเชิงลึกได้เพียงพอเสมอไป และเจ้าของโมดูลต้องปรับลักษณะการทํางานบางอย่าง

มีการแบ่งกลุ่มหรือไม่

คุณจะติดแท็กโมดูล (AndroidTest.xml) ด้วย <option name="not-shardable" value="true" /> เพื่อแจ้งให้เครื่องมือควบคุมทราบว่าไม่ควรชาร์ดได้

ในโมดูลทั่วไป การให้แฮนเดิลแชร์โมดูลของคุณ (ลักษณะการทำงานเริ่มต้น) เป็นสิ่งที่ควรทำ แต่ในบางกรณี คุณอาจต้องการลบล้างลักษณะการทำงานดังกล่าว ดังนี้

  • กรณีที่การตั้งค่าโมดูลมีค่าใช้จ่ายสูง

การแยกกลุ่มโมดูลจะทำให้การเตรียม (ติดตั้ง APK, พุชไฟล์ ฯลฯ) ทำงานได้ครั้งเดียวต่ออุปกรณ์ที่เกี่ยวข้อง หากการตั้งค่าโมดูลใช้เวลานานและสิ้นเปลืองและไม่คุ้มค่าที่จะทำซ้ำเมื่อเทียบกับรันไทม์ของการทดสอบ คุณควรติดแท็กโมดูลว่า "ไม่สามารถแบ่งกลุ่มได้"

  • เมื่อจำนวนการทดสอบในโมดูลต่ำ

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