Screen Shot 2558-04-21 at 9.07.32 PM
ใน Robot framework นั้นสามารถประกาศตัวแปรต่างๆได้ (Variables)
และมักจะถูกใช้งานเยอะเสียด้วย
โดยทั่วไปเรามักจะใช้งาน variableใน

  • ในส่วนของ *** Variables ***
  • Keyword [Arguments] ใน test case
  • Keyword Run Keyword ใน Build-in library

ชนิดของ variable มี 2 แบบนะ คือ

  1. Scalar
  2. 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 กันดูครับ
ของดี มีประโยชน์ครับ