ใน Robot framework นั้นสามารถประกาศตัวแปรต่างๆได้ (Variables)
และมักจะถูกใช้งานเยอะเสียด้วย
โดยทั่วไปเรามักจะใช้งาน variableใน
- ในส่วนของ *** Variables ***
- Keyword [Arguments] ใน test case
- Keyword Run Keyword ใน Build-in library
ชนิดของ variable มี 2 แบบนะ คือ
- Scalar
- List
รู้ไว้ใช่ว่า
ของของ variable เป็นแบบ case-insensitive นะ
และไม่สนใจ space และ underscore นะครับ
มีคำแนะนำในการตั้งชื่อ variable คือ
ถ้าเป็นค่าคงที่ ซึ่งประกาศในส่วนของ Variable ให้ใช้ตัวใหญ่ทั้งหมด
ส่วนที่อื่นๆ ให้ใช้ตัวเล็ก
Scalar
ใช้งานในรูปแบบ ${variable name}
สามารถกำหนดได้เพียงค่าเดียวเท่านั้น
แน่นอนว่า ถูกใช้งานบ่อยๆ มากที่สุด
ตัวอย่างการใช้งานค่าคงที่
คำถาม
จาก code นั้น จะแสดงค่าอะไรออกมา ?
ลอง run ดูครับ
$pybot variable_01.txt
แล้วคุณจะพบว่ามันน่าสนใจมากมาย …
ตัวอย่างการใช้งานกับ [Arguments] ใน test case
List
ใช้งานในรูปแบบ @{variable name}
สามารถกำหนดค่าได้มากกว่า 1 ค่าใน variable เดียวกัน
ตัวอย่างการใช้งาน
ยังไม่พอนะ ยังไม่ชนิด variable เพิ่มเติมนิดนึง คือ
Environment variable ใช้งานในรูปแบบ %{variable name}
เราใช้งาน variable เมื่อไรดีนะ มีคำแนะนำไหม ?
- เมื่อค่านั้นๆ มีการเปลี่ยนแปลงอยู่ตลอด เช่นกำหนดให้เป็นค่าคงที่ เพื่อจะได้ทำการเปลี่ยนเพียงที่เดียวไปเลย
- ถ้าไม่อยากให้ test case มันผูกติดกับระบบ เช่นระบบปฏิบัติการ หรือ ค่าใดๆ เราก็สามารถส่งค่าของ variable ผ่าน command line ได้นะ ซึ่งเดี๋ยวจะอธิบายการใช้งานต่อไป
- ต้องการส่งค่าไปยัง keyword ผ่าน arguments
- เมื่อข้อมูลที่ต้องการใช้มันยาว หรือ ซับซ้อน เช่นชื่อ URL ยาวๆ สามารถสร้างตัวแปร ${URL} ขึ้นมาเพื่อใช้งาน จะดีกว่าไหม ?
สามารถอ่านเพิ่มเติมได้ที่ Robot framework :: User Guide
Robot framework ได้เตรียม build-in variable มาให้เราใช้งานด้วยนะ
มีให้ใช้เยอะ และ ครบถ้วนพอสมควร
โดย variable ที่ผมใช้งานบ่อยๆ ประกอบไปด้วย
- ${EMPTY}
- ${SPACE}
- ${SPACE * 5} คือ space 5 ครั้ง
- ${TRUE}, ${FALSE}
- ${\n} คือ ขึ้นบรรทัดใหม่ จะจัดการให้ตาม Operating System ที่ทำงาน
- ${NONE}, ${NULL}
- ${TEST NAME} คือชื่อ test case ปัจจุบัน
แนะนำการส่งค่าของตัวแปรผ่าน command line
ลองคิดดูสิว่า ถ้าเรากำหนดค่าไว้ใน test data หรือ test case ที่เขียนไปนั้นคงไม่ดีเท่าไร
เช่นเราไม่ต้องการแก้ไขทุกๆ ครั้งที่มีการเปลี่ยนแปลง เช่น
- URL ต่างๆ ที่ต้องการทดสอบ
- IP server ที่ต้องการทดสอบ
- Operating System ที่ต้องการทดสอบ
- ชนิดของ browser ที่ต้องการทดสอบ
ตัวอย่างเช่น
ต้องการทดสอบระบบงานผ่าน browser ชนิดต่างๆ
โดย default browser คือ firefox
ซึ่งสามารถเปลี่ยนค่าผ่าน command line ดังนี้
สามารถส่งค่าของ variable ชื่อว่า ${BROWSER}
ผ่านทาง command line ได้ดังนี้
$pybot –variable BROWSER:chrome variable_04.txt
$pybot –variable BROWSER:ie variable_04.txt
$pybot –variable BROWSER:firefox variable_04.txt
ลองใช้งาน variable ใน Robot framework กันดูครับ
ของดี มีประโยชน์ครับ