หลายคนอาจจะเคยเจอปัญหาว่า Test script มีเยอะมาก จนใช้เวลาในการ Execute นาน ทำให้ได้ผลทดสอบช้า ไม่ทันเวลาในช่วงที่กำลังเร่งรีบ

การที่จะลดเวลาในการ Execute ลงได้นั้น วิธีแรกที่นึกถึงคือ เราจะต้องรัน Test Script แบบ Parallel ค่ะ นั่นคือ Excute หลายๆ Test case พร้อมๆกันนั่นเองค่ะ 

โดยการทำในรูปแบบนี้ นอกจากจะลดเวลาในการทดสอบลงแล้ว ยังสามารถคงจำนวน Test case ที่ต้องการจะรันไว้ได้ เพื่อให้การทำทดสอบนั้นครอบคลุมค่ะ 

แล้วจะทำยังไงถ้าอยากจะ Execute script แบบ Parallel ล่ะ ?

ส่วนใหญ่แล้ว ทีมจะใช้งาน Tool ที่เรียกว่า CI (Continuous Integrations) ในการทำ Parallel Test ค่ะ แต่หากไม่มี CI ไว้ใช้งานเลย วันนี้พี่พลอยมี Solution นึงมานำเสนอค่า 

นั่นก็คือใช้ Pabot 

Pabot เป็น Tools สำหรับ Execute Robot framework แบบ Parallel ค่ะ น้องเกิดมาเพื่อการนี้โดยเฉพาะ

** แต่ข้อควรระวังคือ Test Case ของเราจะต้องเป็น อิสระต่อกัน นั่นคือ Test Case แต่ละ Test case สามารถรันได้ โดยที่ไม่ได้ส่งผลกับ Test case ข้ออื่นๆ ค่ะ 

การติดตั้ง 

ติดตั้งง่ายมากค่ะ แค่ใช้ command 

    pip install robotframework-pabot   

มาดู Test case ที่เตรียมไว้ประกอบการ execute กันก่อนนะ

ใน Project ที่พี่เตรียมมามีทั้งหมด 2 Test suite คือ Cart กับ Profile มี Test Case ทั้งหมด 5 cases ค่ะ 

โดยที่ในแต่ละ Test suite นั้นมี Test case ดังนี้

  • Cart มี Test case ทั้งหมด 2 ข้อ
    • Customer able to add product to cart
    • Customer able to remove product in cart
  • Profile มี Test case ทั้งหมด 3 ข้อ
    • Customer able to see profile
    • Customer able to change profile
    • Customer able to upload profile image

หากเรารันด้วย Robot ปกติ ก็จะใช้เวลาทั้งหมด 56.68 วินาที ตามภาพ

 

ลอง รันด้วย Pabot กัน

Pabot มีรูปแบบการรัน อยู่ไม่กี่รูปแบบค่ะ 

  1. Pabot Suites

รูปแบบนี้ จะกระจาย process parallel ตาม Test suite ค่ะ
เช่น มี 2 test suite ก็กระจายการรันออกเป็น 2 process ค่ะ 

จากตัวอย่าง Project ที่พี่เตรียมมา ก็จะกระจายการรันออกเป็นดังนี้

Process 1 : Cart 

Process 2 : Profile

Command ที่ใช้ Execute  :     pabot eCommerce  

รูปแบบตอน Execute จะเป็นแบบภาพข้างล่างค่ะ ซึ่งหากรันในรูปแบบนี้ ใช้เวลาทั้งหมด 47.65 วินาที

 

2. Pabot –testlevelsplit Suites

รูปแบบนี้ จะกระจาย process parallel ตาม Test Case ในทุก suite ค่ะ
เช่น มี 2 test suite ทั้งหมด 5 test case ก็กระจายการรันออกเป็น 5 process ค่ะ

จากตัวอย่าง Project ที่พี่เตรียมมา ก็จะกระจายการรันออกเป็นดังนี้

Process 1 : [Cart] Customer able to add product to cart

Process 2 : [Cart] Customer able to remove product in cart

Process 3 : [Profile] Customer able to see profile

Process 4 : [Profile] Customer able to change profile

Process 5 : [Profile] Customer able to upload profile image

Command ที่ใช้ Execute  :    pabot –testlevelsplit eCommerce  

รูปแบบตอน Execute จะเป็นแบบภาพข้างล่างค่ะ ซึ่งหากรันในรูปแบบนี้ ใช้เวลาทั้งหมด 27.01 วินาที 

 

จะเห็นว่า พอ Execute แบบ parallel ใช้เวลาลดลงอย่างเห็นได้ชัด วิธีง่ายๆ แบบนี้ ลองเอาไปใช้กันดูน้าาาา

Reference : https://pabot.org/

 

Robot Framework Selenium

Web Automated Test ด้วย

Robot Framework และ Selenium 6

Previous articleวิธีติดตั้ง Chrome For Testing กับ Robot Framework Selenium
Next articlePlaywright ก็ทดสอบ API ได้นะ