ก่อนที่เราจะเริ่มเขียนเทส เราควรจะมีความเข้าใจเกี่ยวกับพื้นฐานของการเขียนเทสกันก่อนค่ะ วันนี้ P’Ploy จะมาเล่าถึง Variables หรือตัวแปรให้ฟังกัน ตามมาเลยๆๆ
ตัวแปร หรือ Variables คืออะไร?
จากภาษาอังกฤษ คำว่า variable มาจากคำว่า vary (เปลี่ยนแปลง) + able (สามารถ) พอเอามารวมกัน ก็คือ ข้อมูลหรือค่าใดๆ ที่สามารถเปลี่ยนแปลงได้ นั่นเองจ้า
เพื่อความเข้าใจมากขึ้น ลองเปรียบเทียบเป็น ถังน้ำที่เราใช้เก็บน้ำ โดยให้ชื่อที่ใช้เรียกถังน้ำเปรียบเสมือนชื่อของ variable ส่วนน้ำที่อยู่ในถัง ก็เปรียบเสมือน data หรือ ข้อมูล ที่ variable นั้นจัดเก็บไว้
จากรูป
ถังใบแรก เราตั้งชื่อถังน้ำนี้ว่า Browser หรือก็คือ variable name Browser เก็บ value Chrome browser
ถังใบที่สอง variable name URL เก็บ value www.amazon.com
ถังใบที่สามพิเศษหน่อยเก็บหลายค่า variable name Products เก็บ value Bag, Shirt, Ball
ใน Robot Framework มีตัวแปรแบบไหนให้เราใช้บ้างนะ?
Robot framework มีตัวแปรพื้นฐานหลักๆอยู่ 3 แบบค่ะ
1. Scalar variables
คือ ตัวแปรที่เก็บข้อมูลได้เพียงข้อมูลเดียว เช่น browser , URL เหมือนกับถังน้ำใบที่ 1 และ 2 ค่ะ
การสร้างตัวแปรแบบ Scalar
รูปแบบการใช้งาน ${variable name} = data
ตัวอย่าง
*** Variables *** ${MY_VARIABLE} = Hello there
การเข้าถึงค่าในตัวแปรแบบ Scalar
รูปแบบการใช้งาน Keyword ${variable name}
ตัวอย่าง
*** Test Cases *** Scalar variable demonstration Log ${MY_VARIABLE}
จากตัวอย่าง value ที่ได้จะเป็น Hello there ค่ะ
2. List variables
คือ ตัวแปรที่เก็บข้อมูลได้หลายข้อมูล เช่น productlist อาจจะเก็บข้อมูล Bag, Shirt, Ball เหมือนกับถังน้ำใบที่ 3 ค่ะ
การสร้างตัวแปรแบบ List
รูปแบบการใช้งาน @{variable name list} = data1 data2 data3
ตัวอย่าง
*** Variables *** @{MY_VARIABLE} = Hello there This is value 2 I am item 3
การเข้าถึงค่าในตัวแปร List
รูปแบบการใช้งาน Keyword = @{variable name list}[index]
ตัวอย่าง
*** Test Cases *** List variable demonstration Log @{MY_VARIABLE}[0] Log @{MY_VARIABLE}[1] Log @{MY_VARIABLE}[2]
จากตัวอย่าง value ที่ได้จะเป็น Hello there , This is value 2 และ I am item 3 ตามลำดับจ้า
3. Dictionary variables
คือ ตัวแปรที่เก็บข้อมูลได้หลายข้อมูล ซึ่ง ตัวแปร Dictionary มีความคล้ายคลึงกับตัวแปรแบบ List แต่ต่างกันที่ สามารถเข้าถึงข้อมูลได้ด้วยการใช้ key แทนที่จะเป็น index แบบ list ค่ะ
การสร้างตัวแปรแบบ Dictionary
รูปแบบการใช้งาน &{variable name dic} key1=data1 key2=data2
ตัวอย่าง
*** Variables *** &{USER1} name=Matti address=xxx phone=123 &{USER2} name=Teppo address=yyy phone=456
จากตัวอย่างถ้าดูในรูปแบบ json จะเป็นแบบนี้
&{USER1} = {'name': 'Matti', 'address': 'xxx', 'phone': '123'} &{USER2} = {'name': 'Teppo', 'address': 'yyy', 'phone': '456'}
การเข้าถึงค่าในตัวแปรแบบ Dictionary
รูปแบบการใช้งาน Keyword &{variable name dic}[key]
ตัวอย่าง
*** Test Cases ***
Dictionary variable demonstration
Log &{USER1}[name]
Log &{USER2}[phone]
จากตัวอย่าง value ที่ได้จะเป็น Matti และ 456 ตามลำดับนั่นเองค่ะ
เอาตัวแปรไปใช้ยังไง ?
– เอาไว้เก็บค่าหรือข้อมูลต่างๆ ลดการเขียนโค้ดที่ซ้ำซ้อนได้
– หากต้องการเปลี่ยนแปลงข้อมูล ก็สามารถเปลี่ยนจากตัวแปรได้เลยที่เดียว ใน script ที่เราเรียกใช้ตัวแปรนี้ ข้อมูลก็จะถูกเปลี่ยนตามไปด้วย ไม่ต้องไปตามเปลี่ยนหลายที่ให้วุ่นวาย
– ปรับเปลี่ยนค่าตอน run time หรือ ตอนที่ test execute อยู่ค่ะ เช่น ถ้าต้องการให้รันคำสั่งนี้ครบ 3 ครั้งแล้วให้ไปรันอีกคำสั่งแทน แบบนี้เราสามารถเอาตัวแปรมาเก็บค่ารอบการรันเอาไว้ค่ะ
จบแล้วค่า ไม่ยากใช่ไหมคะ อย่าลืมเอาไปประยุกต์ใช้กันดูนะคะ และสำหรับผู้ที่กำลังเริ่มต้นเขียนเทส อย่ารีรอที่จะลงมือทำ P’Ploy เชื่อว่าทุกคนสามารถทำได้แน่นอนค่าา
“บอกฉัน ฉันจะลืม
สอนฉัน ฉันจะจำ
แต่ถ้าให้ฉันทำ ฉันจะเรียนรู้ ”
Benjamin Franklin
References: