หลังจากที่เราเริ่มเขียน Robot Framework Test Script ไปสักพัก ก็จะเริ่มมี Test Step ที่เรามักต้องทำซ้ำๆกัน เวลา เริ่มต้นและส่วนท้ายของ Test Script ซึ่งถ้าปล่อยให้เป็นแบบนี้ต่อไปคงไม่ดีแน่ Test Script ของเราก็ดูรก, อ่านยาก, มี code ซ้ำๆกันเต็มไปหมด และ Test Script เองก็มี Step ที่ไม่เกี่ยวกับการเทส ปนมาเพียบเลย
วันนี้ผมเลยมาขอเสนอให้ลองใช้ Setup และ Tear Down เพื่อช่วยลด Step เหล่านี้จาก Test Script ของเราดู โดย Setup และ Tear Down จะมีที่ให้เรากำหนดอยู่ 2 ที่หลักๆคือ
- กำหนดที่ Test Case เราจะเรียกว่า Test Setup และ Test Tear down
- กำหนดที่ Test Suite เราจะเรียกว่า Suite Setup และ Suite Tear down
Suite Setup และ Suite Tear down
จะต่างจาก Setup และ Tear down ปกติ คือ Suite Setup จะรันครั้งเดียวก่อนที่จะรันเทสเคสภายใต้ Test Suite นั้นๆ และ Suite Tear down จะรันครั้งเดียวหลังจากรันเทสเคสทั้งหมดภายใต้ Test Suite นั้นๆเสร็จแล้ว
ส่วนใหญ่เรามักจะใช้ในการเตรียม Test Environment ที่จะไม่มีผลกระทบระหว่างเทสเคส เช่น การเปิด Web Browser ก่อนจะเริ่มรัน เทส และ ปิด Web Browser หลังจากรันเทสทั้งหมดเสร็จแล้ว
Setup และ Tear down
Setup จะเป็นตัวเรียกให้ Keyword ที่เรากำหนดไว้ รันก่อนที่ จะรันเทสเคสนั้นๆครับ เช่น ถ้าเราต้องการเทส Web Application เราก็จำเป็นต้องเปิดที่เว็บ Site ที่เราต้องการจะเทสก่อนเสมอ ซึ่ง Step ตรงนี้ เราก็สามารถยุบรวมไว้ใน Setup ได้ครับ เพราะเป็นส่วนที่ไม่เกี่ยวกับจุดประสงค์การเทสของเราเลย
Tear down จะเป็นตัวเรียกให้ Keyword ที่เรากำหนดไว้ รันหลักจากรันเทสเคสนั้นๆเสร็จสิ้นครับ เช่น หลังจากเทส Web Application เสร็จ เราก็ต้องล้างข้อมูลเช่น Cookie หรือข้อมูล User Account ต่างๆ
ตัวอย่าง Setup และ Tear down
ถ้าลองสังเกตุดูจะเห็นว่า Test Step จริงมีแค่ บรรทัดที่ 5, 6 เท่านั้นเอง
ตัวอย่าง Test Script ก่อนใช้ Setup และ Tear down
ตัวอย่าง Test Script หลังจากที่ใช้ Setup และ Tear down
การใช้ Setup และ Tear down ในการรัน Test Web Application
ตัวอย่าง Keyword Setup
ประโยชน์หลักๆของ Setup และ Tear down
- ลดความซ้ำซ้อนของแต่ละ Test Script ลง ช่วยให้เราดูแลง่ายขึ้น
- ช่วยทำให้เราโฟกัส กับสิ่งที่เราต้องการจะเทส ในแต่ละ Test Case ได้จริงๆ โดยไม่มี Setup Step และ Tear Down Step มาทำให้ดูวุ่นวาย เกินความจำเป็น
- ช่วย Clear Test Environment ให้สะอาดเสมอก่อนจากรันเทส และหลังจากรันเทสเสร็จ
- ถึงเทสจะ Failed แต่ Tear Down ก็ยังทำงานต่อ จึงมั่นใจได้ว่า Test Environment ของเราสะอาดเสมอก่อนจะรันเทส ข้อต่อไปฮับ
มาเริ่มดูแล Test Script กันตั้งแต่วันนี้
อย่าปล่อยให้เป็นภาระลูกหลานเลยครับ