Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

บันทึกการแบ่งปันเรื่อง Automated Testing with Cypress

$
0
0

สรุปจากการแบ่งปันเรื่อง Automated testing with Cypress เป็นเวลา 2 วัน
เป็นการเขียน test script ด้วย Cypress เป็นภาษา JavaScript
โดยสิ่งที่แบ่งปันเป็นดังนี้

เริ่มด้วยการติดตั้ง และ สร้าง repository สำหรับเก็บ test script

ประกอบไปด้วย 2 แนวทางคือ

  • แยก repository ออกมาจาก code
  • ใช้ repository เดียวกันกับ code ไปเลย

ขึ้นอยู่กับแนวทางที่ตกลงร่วมกัน
แต่ที่แนะนำคือ รวมกันไปเลย

ต่อมาทำการสร้าง project ด้วย cypress ปกติ

และแนะนำความสามารถของ Cypress UI หรือ Studio
ว่ามีความสามารถอะไรบ้างที่สำคัญ เช่น

  • แนวทางในการทดสอบทั้ง unit, integration และ end-to-end test เพื่อให้เข้าใจ strategy ของการทดสอบ
  • โครงสร้างของ Cypress project ว่าเป็นอย่างไร
  • รูปแบบของการทดสอใน Cypress เช่น End-to-End, Component, API, Snapshot, Visual testing
  • Auto testing
  • การ debug
  • การ record test script ผ่าน Cypress Studio ที่ยังคงเป็น experiment feature เท่านั้น แต่ใช้งานได้ดี
  • การใช้งาน cypress playground เพื่อช่วยให้การ inspect และเขียน test script ง่ายขึ้น
  • ตัวอย่างของ cypress ที่มือใหม่ต้องเรียนรู้ คือ example.cypress.io
  • ปรับปรุงให้ test step ใน UI และ report สวย ๆ อ่านง่าย เป็น step-by-step ด้วยการใช้งาน cypress-plugin-steps
  • การ configuration ที่น่าสนใจในไฟล์ cypress.config.js/ts
  • การทดสอบผ่าน command line รวมทั้ง parameter ต่าง ๆ
  • การจัดการ network request เพื่อทำการ stub request ต่าง ๆ ที่ต้องการ

จากนั้นเริ่มให้ test script ด้วยภาษา JavaScript

  • เขียนแบบปกติ โดยใช้ cypress playground และ ตัว recorder ทั้งใน Cypress Studio และ extension ใน Google Chrome
  • เริ่มทำการ refactor code ของ test script ด้วยการไปใช้ test life cycle, แยกเป็น function ย่อย ๆ, แยกไปเป็น class และ แยกไปเป็น command ต่อไป
  • เพื่อให้ test script อ่านง่าย และเป็นมิตรขึ้นมา ด้วยการใช้งาน Cypress Cucumber ด้วยรูปแบบของ Gherkin มาช่วย ด้วย library ชื่อว่า cypress-cucumber-processor ซึ่งเปลี่ยนคน maintain แล้ว
  • การจัดการ selector หรือ element บนหน้า web ที่ดีกว่าเป็นอย่างไร ลดการผูกมักกับหน้า web ลงไป
  • การ assert หรือตรวจสอบผลการทำงาน ว่าเป็นไปตามที่เราคาดหวังหรือไม่
  • การจัดการ test case เพื่อลด flaky test ลงไป
  • การจัดกลุ่มของ test case ด้วย Cypress tags
  • การสร้าง test report ในรูปแบบต่าง ๆ ทั้ง build-in, Mocha custom, JUnit, Allure และ Cucumber เป็นต้น

ทำการสร้าง pipeline ของ CI/CD

  • ออกแบบ pipeline ของขั้นตอนการทำงาน
  • สร้าง pipeline โดยทำการทดสอบด้วย Cypress
  • ใช้งาน Cypress + Docker สำหรับการทดสอบระบบงานตาม test case ที่เขียน

เป็นการแนะนำสำหรับก้าวแรกของการใช้งาน Cypress
สำหรับเขียน test script เพื่อช่วยการทดสอบให้ง่ายและสะดวกขึ้น
ต่อจากนี้คือ การลงมือทำ เพื่อฝึกฝน และเพิ่มประสบการณ์ต่อไป
แต่เหนือสิ่งอื่นใดคือ
จะทดสอบอะไรบ้าง ?
เพิ่มความมั่นใจที่มีต่อระบบหรือไม่ ?


ขอให้สนุกกับการทดสอบ และ coding



Viewing all articles
Browse latest Browse all 1997

Trending Articles