มาเทียบกันระหว่าง cypress กับ katalon ในการ Test UI
สวัสดีครับมาพบกันอีกครั้งหลังจากครั้งแรกที่ผมได้เคยเขียน Blog เรื่อง การใช้ Katalon ทำ automate test android คู่กับ Teamcity ไปนะครับ ครั้งนี้ผมก็จะมาเทียบกันระหว่างเจ้าตัว Katalon Studio กับ Cypress กันครับ หากมีอะไรผิดพลาดก็ขออภัยมา ณ ที่นี้ด้วยนะครับ ^-^
Katalon Studio คืออะไร ?
Katalon Studio ก็คือ Automated testing tools ตัวนึงที่ช่วยให้เหล่า Software tester ลดระยะเวลาในการ Manual test ไปได้ในระยะเวลานึง ซึ่งเจ้าตัว Katalon เนี่ย มันพัฒนาบน Base Selenium โดยใช้ภาษา Java/Groovy ในการเขียน Automated Script
แล้ว Cypress ล่ะ คืออะไร ?
Cypress ก็คือ Automated testing tools เช่นเดียวกันกับ katalon แต่ต่างกันที่ cypress นั้นพัฒนาบน Node JS ใช้ภาษา Javascript/TypeScript ในการเขียน Script ซึ่งเจ้าตัว Cypress เนี่ยมีหลาย ๆ คนเคลมว่า “เร็ว แรง แซง Selenium” ผมก็เลยเข้ามาเล่นสักหน่อย อยากรู้ว่ามันจะจริงอย่างที่เค้าว่ากันไหม เรามาลองเทียบกันเลยครับ ว่า 5 เรื่องที่ผมยกมานั้นเป็นยังไงกันบ้าง
เรื่องแรก ประเดิมด้วยเรื่อง การติดตั้งและการใช้งาน
เจ้าตัว Katalon เนี่ยมันสามารถโหลดแล้วมา install ได้เลยเพราะ เป็น application ตัวนึง โดยสามารถโหลดได้ ที่นี่ แต่ว่าตัว cypress นั้นเป็น open source ซึ่งสามารถ install ได้ผ่าน command line โดยใช้คำสั่ง “ npm i cypress ” เพียงแค่นี้ก็สามารถเขียนตัว script ได้เลย แต่เนื่องจาก cypress เป็น open source จึงไม่มี template อะไรมาให้เลยเราจึงต้องเข้าไปอ่าน document เพื่อดูและใช้งานคำสั่ง แต่ว่า katalon ที่เราติดตั้งนั้นเป็น GUI ที่มีคำสั่งกับคำอธิบายมาพร้อมกัน
ข้อดีและข้อเสียมีกันคนละด้าน คะแนนจึงเป็น katalon 1: cypress 1
เรื่องที่สอง ความเร็วในการทดสอบ
โดยในการทดสอบนี้ผมจะเขียนตัว Script ง่าย ๆ โดยให้ทั้งสองทำงานเหมือนกัน เดี๋ยวเรามาดูกันว่าใครเร็วกว่า
ด้วยผลที่ออกมา คะแนนจึงเป็น katalon 1: cypress 2 ทั้งนี้อาจจะเกี่ยวที่ spec computer กับ internet ด้วยในบางส่วน
Cypress มี feature ที่เมื่อเรา save ไฟล์ที่เราแก้ไขแล้วมันจะ reload test นั้นอัตโนมัติด้วยน้าา very cool!
ปล.แต่ถ้าหากว่าคุณ ๆ ยัด test case ลงใน cypress เยอะเกินไปจะทำให้ตัว cypress นั้น page over load แล้วมันจะหน่วงแบบขีดสุดแล้วมันก็จะหา case ของคุณไม่เจอเลย ระวังเรื่องการเขียน script ที่เกินความจำเป็นด้วยน้าา
เรื่องที่สาม ความสามารถในการ Record device
โดยเจ้าตัว katalon นั้นมีความสามารถในการ record web หรือว่า record mobile อยู่แล้วทำให้ง่ายมาก ๆ ในการใช้งาน แต่ว่าเจ้าตัว cypress ก็มีเหมือนกันนะ เรียกว่า selector playground ที่เอาไว้ช่วยในการดู element ของ object นั้น ๆ
ของ katalon หลังจากที่ record web แล้วกด ok จะ generate test case ให้เราอัตโนมัติเลย แต่ว่า cypress จะต้องค่อย ๆ เลือก selector แล้วเอามาใส่ test case เองนะครับ
ด้วยเหตุนี้ ผลที่ออกมา คะแนนจึงเป็น katalon 2: cypress 2.5
เรื่องที่สี่ Debugging and Report
แน่นอนว่าสำหรับเหล่า Tester แล้ว การดู log debug เป็นสิ่งที่จำเป็นเพื่อที่จะบอกว่า developer นั้นผิดพลาดตรงไหน ซึ่งเจ้าตัว cypress เนี่ยทำได้ดีกว่า Katalon เพราะว่า cypress สามารถ debug ได้ทั้งใน console ทั้ง snapshot ทุกขึ้นตอนการเทสได้เลย แต่ว่าตัว katalon เวลา fail case จะ snapshot แค่รูปที่ fail เท่านั้น ( ถ้าอยากให้มัน snapshot ต้องไปใช้คำสั่งให้มัน snapshot อีก 🙀 )
แต่ส่วนเรื่อง Report เนี่ย ผมยกให้ตัว katalon นะครับ เพราะว่าทำออกมาได้สวยงาม รองรับได้ทั้งบน cloud รึว่าจะเอาเป็น pdf, JUnit, CSV, HTML ก็ทำได้หมด แต่หากอยากได้ report ของ cypress ล่ะก็ต้องไปติดตั้งคำสั่งเพิ่มเติมหรือไม่ก็ต้องเอาขึ้นไปไว้บน dashboard cypress เลยเนี่ยสิ
ด้วยเหตุนี้ ผลที่ออกมา คะแนนจึงเป็น katalon 3: cypress 3.5
เรื่องสุดท้าย Web or Device Support
ในเรื่องนี้นั้น katalon ทำได้ดีกว่ามากครับ เพราะว่า katalon นั้น support ทั้ง Web application chrome, firefox, safari, IE และอีกมากมาย และในส่วนของ Mobile ก็ support ทั้ง real device และ local device ส่วนตอนนี้ cypress นั้นยัง support แค่ chrome เท่านั้น แต่ก็มีแพลนที่จะเพิ่มการ support browser อื่นๆ เช่นเดียวกันครับ
ด้วยเหตุนี้ ผลที่ออกมา คะแนนจึงเป็น katalon 4: cypress 4
จากข้างต้นที่กล่าวมา ผมจะไม่ขอฟันธงว่า tools ไหนดีกว่ากัน หรือพูดง่าย ๆ ว่า ขึ้นอยู่ที่ความสะดวกหรือความถนัดของ Tester อย่างเราดีกว่า เพราะว่า tools ทั้งสองอาจจะยังมีข้อผิดพลาดหรือที่เราเรียกกันว่า bug และที่กล่าวมาทั้งหมดไม่ใช่ทุก feature ที่มีทั้ง cypress และ katalon สรุปก็เอาเป็นว่า Tools ไหนเหมาะสมกับทีมมากที่สุดก็เลือกอันนั้นแหละครับ ขอบคุณครับ
“เมื่อชีวิตคือการดิ้นรน เหนื่อยก็ต้องทน ท้อก็ต้องทำ ความสำเร็จนั้น จะไม่มีวันเดินออกตามหาเรา เราต้องทำ ถึงจะสำเร็จได้”