Top 7 Free Automated Testing Tools in 2024
เครื่องมือที่ใช้ในการทดสอบนั้นมีอยู่เยอะมาก ทำให้มือใหม่ที่เริ่มทำ Automated test เกิดอาการสับสนเลือกไม่ถูกว่าจะต้องเลือกใช้ตัวไหนดี เราเลยทำการคัดเเลือกเครื่องมือสำหรับการทดสอบที่ค่อนข้างได้รับความนิยมสูงมาเป็นข้อมูลที่จะช่วยให้คุณเลือกเครื่องมือต่างๆได้ง่ายขึ้น
Automated Testing Tools
เครื่องมือที่อยู่ในรายการนี้เป็นเครื่องมือที่ใช้ในการทำ Automated UI Testing ล้วนๆ นั่นคือเราทดสอบด้วยการจำลองการใช้งานระบบผ่านหน้า UI ทั้ง Mobile และ Web Application
แต่เนื่องจากการทำ automated testing นั้นยังสามารถทำการทดสอบในระดับอื่นๆได้อีก เช่น API testing ซึ่งจะต้องใช้ tools อื่นๆในการทดสอบ ติดตามอ่านบทความเกี่ยวกับการทำ API Testing ต่อได้ที่นี่
1. Selenium
Selenium ถือว่าเป็นเครื่องมือสำหรับทำ Automated Testing ตัวแรกๆ ที่จะถูกพูดถึงเพราะเป็นตัวแรกที่ออกมา Selenium จะทำหน้าที่ควบคุมการทำงานของ Browser โดย Selenium จะประกอบไปด้วยเครื่องมือ 3 ตัวคือ
-
Selenium IDE คือเครื่องมือที่สามารถติดตั้งลงในเครื่อง หรือ ติดตั้งเข้าไปใน Browser เพื่อบันทึกการทำงานและสามารถแทรก Assert เข้าไปเพื่อทดสอบการทำงานของ Web หน้านั้นๆได้ เช่น เมื่อกดปุ่มค้นหาแล้วมีรายการสินค้าที่เราต้องการโผล่ขึ้นมาหรือไม่ Selenium IDE สามารถติดตั้งได้ทั้ง Chrome และ Firefox
-
Selenium Web Driver เป็นการเขียน script เข้าไปควบคุมการทำงานของ browser โดยตรง ซึ่งก่อนจะควบคุม browser ได้ เราจำเป็นต้องติดตั้ง driver ก่อน เช่น ถ้าต้องการควบคุม Chrome เราต้องติดตั้ง Chromedriver
-
Selenium Grid คือ Server ที่คอยรับ Script เข้ามาทำงานแบบคู่ขนาน(parallel) เพราะปัญหาของการทำ UI Testing คือความช้า ถ้าเราต้องการทดสอบหลายๆ workflow พร้อมๆกัน เราก็จะใช้ Selenium Grid มาช่วยแตก process แล้วกระจายไปยังเครื่องต่างๆ(Nodes) ซึ่งข้อดีที่ได้จาก Selenium Grid คือ
- สามารถ run Web Driver Script ได้เร็วขึ้น
- สามารถทดสอบหลายๆ platform(OS หรือ Browser ที่ต่างกัน) ได้พร้อมๆกัน
อ่านวิธีการใช้งาน Selenium ค่อได้ที่นี่
2. Robot Framework
เนื่องจากการใช้งาน Selenium นั้นต้องเขียน Code ซึ่งมีความยากในการเขียนและการแก้ไขโดยเฉพาะ Tester ที่ไม่ได้เขียนโปรแกรมเป็นงานประจำ ดังนั้น Robot framework จึงถูกพัฒนา on-top selenium ซึ่งจะช่วยให้เราไม่ต้องเขียน Code โดย Script ของ Robot framework จะใกล้เคียงกับภาษามนุษย์ จึงทำให้ Tester สามารถเขียนและแก้ไขได้ง่ายกว่า Selenium
และนอกจาก Selenium แล้ว Robot framework ยังมี Libraries อีกหลายตัวช่วยให้เราสามารถทดสอบ Application อื่นๆ ด้วย Syntax ของ Robot framework เช่น ทดสอบโครงสร้างของ Database หรือ ทดสอบ Mobile Application ด้วย Appium
อ่านวิธีการใช้งาน Robot Framework ค่อได้ที่นี่
3. Cypress
Cypress เป็น Automated testing tool ที่เกิดขึ้นมาทีหลัง ต้องการตอบโจทย์เรื่องความเร็วและความง่ายในการเขียน ซึ่ง Cypress จะมีข้อจำกัดมากกว่า Selenium
- Cypress จะใช้ได้เฉพาะบน Browser เท่านั้น
- Cypress รองรับภาษา Javascript เท่านั้น
Features หลักๆของ Cypress มีดังนี้
- Time travel and Debugging สามารถเข้าไปย้อนดูเหตุการณ์ต่างๆ และ debug หาข้อผิดพลาดได้ง่าย
- Automatic Waiting เราจะไม่ต้องถูกบังคับให้ใส่ Wait, Wait until อีกต่อไปทำให้ Test script ของเรา clean ขึ้นอย่างเห็นได้ชัด
- Fast and Reliable การใช้ JavaScript แทนการใช้ Selenium Webdriver จะทำให้การควบคุม browser นั้นเร็วและมีข้อผิดพลาดน้อยกว่า
- Screenshots and Videos เราสามารถบอกให้ Cypress บันทึกหน้าจอเป็นรูปภาพหรือ Videos เพื่อให้เราเข้าไปแก้ไขปัญหา หรือส่งให้ Developer ทำความเข้าใจง่ายขึ้น
- Stubs and Spies เราสามารถจำลอง Object และ method ขึ้นมาโดยที่ไม่ต้องมี Code ที่ execute จริงๆ สามารถนำไปใช้ทำ Unit Test และ Integration Test ได้
- Network Traffic Control เราสามารถจำลอง Response จาก Server ได้ ืทำให้ไม่จำเป็นต้องเชื่อมต่อกับ Server จริงๆ
อ่านวิธีการใช้งาน Cypress ค่อได้ที่นี่
4. Playwright
เป็น Automation จากค่าย Microsoft ซึ่งถือว่าเป็นอีกตัวที่มาแรงไม่น้อยเลยทีเดียว Playwright จะต่างจาก Selenium และ Cypress ตรงที่
- รองรับหลายภาษา สามารถเขียน test script ด้วย JavaScript, TypeScript, Python, Java และ Dotnet
- ไม่ต้องติดตั้ง Webdriver(ซึ่งมีปัญหาเรื่องการ update มาก) Playwright สามารถใช้ได้กับ browser หลักๆอย่าง Chromium, Chrome, Firefox, Webkit และ Edge
- ใช้การสร้าง BrowserContext(isolated context) ขึ้นมาทำให้เร็วกว่าการเปิด browser แบบปกติ แถมยังสามารถ run แบบ parallel ได้อีกด้วย
- สามารถใช้งานได้ทุก platform ทั้ง Windows, Linux และ MacOS(ข้อนี้จะเหมือนกับ Selenium และ Cypress)
- ไม่ต้องใช้ Wait Until Element อีกต่อไป เพราะ Playwright จะรอจนกว่า Element นั้นจะแสดงผลขึ้นมาเอง(ลดปัญหา Flaky Test ลงได้่เยอะมากๆ)
- การติดตั้งทำได้ง่ายกว่า Selenium แต่จะติดต้ังได้ง่ายพอๆกับ Cypress
ถ้าเราเขียน Playwright Code ด้วย JavaScript จะเริ่มต้นได้ง่ายมาก เพราะ playwright module จะมี Test runner มาให้อยู่แล้ว แต่ถ้าใช้ภาษาอื่นๆคุณต้องติดตั้ง Test runner เพิ่มอีก 1 ตัว
อ่านวิธีการใช้งาน Playwright ค่อได้ที่นี่
5. Cucumber
เป็น Automated Testing Tools ที่ทำให้เกิด Behavior Driven Development(BDD) ด้วยการที่ให้เราเขียน Test Script ด้วย Gherkin Syntax แบบนี้
# Comment
@tag
Feature: Bank check balance
Scenario: Checking account balance after deposit
Given My checking account has a balance of $500
And I just deposit of $100
When I checkout balance
Then I shoild see $600 as a balance
ข้อดีของการใช้ Gherkin Syntax คือทุกคนในทีมสามารถอ่านและแก้ไข Script ได้ ดังนั้น Cucumber จึงเหมาะสำหรับ Tester ที่ไม่ถนัดเขียนโปรแกรม และต้องการ Test Script ที่สื่อสารกับฝั่ง Business ง่ายๆ
6. Karate Framework
เป็นเครื่องมือน้องใหม่ที่มาแรงมากๆ เนื่องจาก Karate Framework สามารถทำได้ทั้ง UI Testing และ API Testing เรียกได้ว่าครบเครื่องเลยทีเดียว
ข้อดีของ Karate Framework มีดังนี้
- เขียน Test Script ด้วย Gherkin Syntax เหมือนกับ Cucumber
- การติดตั้งทำได้ง่าย ไม่ต้องมี Configuration อะไรให้ยุ่งยาก
- สามารถ Test ได้ทั้ง API, Web และ Mobile
ตัวอย่าง Test Script ของ Karate
Feature Simple user API test
Scenario: Fetch a list of users
Given url 'http://localhost:3000/users'
When method get
Then status 200
7. Appium
Appium เป็นเหมือนกับ Selenium ที่สามารถนทดสอบได้ทั้ง Windows Application(WPF หรือ UWP) และ Mobile Application ทั้ง iOS และ Android
ข้อดีของ Appium มีดังนี้
- สามารถเขียนได้หลายภาษา เช่น Java, Python, JavaScript, Ruby และ C#
- นำไป integrate กับ CI tools ได้ง่าย
- Supports หลาย platform ทั้ง Windows, Android และ iOS
- มี GUI ให้ใช้งาน ทำให้เราสามารถเริ่มต้นและเข้าไป Inspect หาปัญหาได้ง่าย
การทำงานของ Appium
- เราจะเขียน Test Script ด้วย Testing Library ในภาษาต่างๆ
- Test Script จะส่งคำสั่งเข้าไปคุยกับ Appium Server
- Appium จะส่งคำสั่งไปยัง Driver ซึ่ง Driver ที่ดูแลโดย Appium Team มีดังนี้
Driver Installation Platform(s) Mode(s) Chromium chromium All Web Espresso espresso Android Native Gecko gecko All Web Mac2 mac2 macOS Native Safari safari macOS, iOS Web UiAutomator2 uiautomator2 Android Native, Hybrid, Web XCUITest xcuitest iOS Native, Hybrid, Web - Driver จะทำการค้นหา Element หรือ Control และสร้าง action ตามที่เรากำหนดไว้ใน Test Script
ทั้งหมดนี้ก็เป็นภาพรวมของเครื่องมือที่สามารถเลือกมาทำ Autometed Test ได้ไม่ว่าคุณจะพํฒนา Web Application หรือ Mobile Application ก็ตาม