[TH] Test Level Parallel Executor with Pabot
สำหรับ Pabot นั้นเป็น library ที่ใช้สำหรับการทำ parallel ของตัว Robot Framework เพื่อรันหลายๆ test case พร้อมกัน โดยมีจุดประสงค์ที่จะช่วยลดระยะเวลาในการทดสอบ
โดยปกติแล้วการรัน test case นั้นจะมีการ execute แบบ sequential หากมี test case เป็นจำนวนมาก ก็ย่อมหมายความว่าเวลาที่จะใช้ในการทดสอบ test case ทั้งหมดก็มากขึ้นตามไปด้วย ซึ่งการนำเอา pabot parallel executor มาใช้ในการรันการทดสอบ จะช่วยร่นระยะเวลาให้น้อยลงเมื่อเทียบกับการรันแบบ sequential ปกติ
สำหรับค่า default ของ pabot เมื่อเราต้องการรันการทดสอบแบบ parallel นั้น จะเป็นการรันที่ระดับ Test Suite แล้วถ้าหากต้องการรันการทดสอบที่ระดับ test case ก็เพียงแค่ใช้คำสั่ง
--testlevelsplit
เดี๋ยวลองมาเปรียบเทียบกันดีกว่าว่าในการรันการทดสอบแต่ละแบบนั้นจะมีความแตกต่างในเรื่องของเวลาที่ใช้ในการทดสอบมากน้อยอย่างไร
โดยจะใช้ 2 test suite โดยแต่ละ test suite จะมีจำนวน 3 และ 2 test case ตามลำดับดังภาพ
เริ่มกันการรันการทดสอบแบบ sequential ตามปกติ โดยใช้คำสั่ง
robot --variable LANG:en -d nonParallel TestSearch
จากการรันการทดสอบแบบ sequential จะใช้เวลาอยู่ที่ประมาณ 1 นาที 45 วินาที
ถ้าหากเป็นการรันการทดสอบแบบ parallel ที่ระดับ Test Suite จะใช้คำสั่ง
pabot --variable LANG:en -d parallelTestSuite TestSearch
จะเห็นได้ว่าระยะเวลาที่ใช้ในการรันการทดสอบทดสอบนั้นลดลงเหลือเพียง 1 นาที 3 วินาทีเพียงเท่านั้น
สุดท้ายถ้าหากเป็นการรันการทดสอบแบบ parallel ที่ระดับ Test Level โดยใช้คำสั่ง
pabot --testlevelsplit --variable LANG:en -d parallelTestLevel TestSearch
ซึ่งระยะเวลาที่ใช้ในการรันการทดสอบอยู่ที่ 1 นาที 12 วินาที
จากการลองรันการทดสอบทั้ง 3 แบบนั้น สรุปเวลาที่ใช้ได้ ดังนี้
- Sequential: 1 นาที 45 วินาที
- Parallel ที่ระดับ Test Suite: 1 นาที 3 วินาที
- Parallel ที่ระดับ Test Level: 1 นาที 12 วินาที
จะเห็นได้ว่าการรันแบบ parallel ทั้ง 2 แบบนั้นใช้ระยะเวลาที่น้อยกว่าการรันแบบ sequential พอสมควร ดังนั้นในกรณีที่มีจำนวน test case เยอะ การรันแบบ parallel ก็จะช่วยลดเวลาในการรันการทดสอบทั้งหมดได้