สวัสดีฮะ สัปดาห์นี้ทางบริษัทได้มีการส่งทีม QA ไปฝึกวรยุทธกันที่บริษัท QA Hive โดยได้เรียนเจ้า Robot framework กั๊นนนน
ถึงแม้กาดจะเคยใช้เจ้า robot framework นี้มาบ้างแล้ว ซึ่งตอนเรียนอาจจะนำหน้าเพื่อนๆในชั้นเรียนไปบ้าง แต่กาดก็มีสิ่งที่ได้เพิ่มเติมจากการเรียนครั้งนี้นะ นั้นคือรายละเอียดเล็กๆน้อยๆที่เป็นพื้นฐานมากๆ อย่างเช่นเรื่อง Variable ของ Robot framework ว่ามีการแบ่งประเภทไว้ 3 แบบ นั้นคือ (ซึ่งสมัยกาดใช้เนี่ยก็เข้าใจแค่เป็นการประกาศตัวแปรเฉยๆนะ ไม่ได้รู้ว่ามันมีชื่อเรียกด้วย ฮ่าๆ)
- Scalar Variable
- List Variable
- Dictionary Variable
Scalar variable syntax
การประกาศตัวแปรแบบ Scalar คือ ใช้เครื่องหมาย “$” ซึ่งตัวแปรแบบ scalar จะเป็นแบบ single value นะ
example
${name}= Set Variable PK
ถ้าใน robot framework เมื่อกำหนดค่าเหมือนในตัวอย่างแล้วเราลองใช้คำสั่ง log และเมื่อรันคำสั่ง robot แล้วใน report ของ robot เราจะเห็น result เป็น PK
ซึ่งในตัวอย่างของ robot framework มีการยกตัวอย่างเปรียบเทียบกันให้ด้วย
ใน Test Case ที่ชื่อ
- Constants เราจะประกาศค่าเอาไว้เลย ได้แก่ Hello กับ Heloo, world!!
- Variables เราจะประกาศค่าเอาไว้ผ่านตัวแปรที่ชื่อ ${GREET} = Hello, ${NAME} = world
ผลลัพธ์ที่จะได้เหมือนกันทั้งสองแบบ
List variable syntax
การประกาศตัวแปรแบบ List คือ ใช้เครื่องหมาย “@” ซึ่งตัวแปรแบบ list จะเป็นแบบ multiple value นะ
example
@{products}= Create List celine dior channel ysl
ใน Test Case ที่ชื่อ
- Constants เราจะประกาศค่าเอาไว้เลย ได้แก่ celine dior channel ysl
- List Variables เราจะประกาศค่าเอาไว้ผ่านตัวแปรที่ชื่อ @{products} ใน products ก็จะมีค่า [‘celine’, ‘dior’, ‘channel’, ‘ysl’] เก็บไว้
ให้ลองจินตนาการว่า Login (line 17) มันมีค่า 4 ตัวนี้ ส่วน line 20 ค่าทั้ง 4 ตัวจะถูกใส่ใน @{products} แทน
Dictionary variable syntax
การประกาศตัวแปรแบบ Dictionary คือ ใช้เครื่องหมาย “&” ซึ่งตัวแปรแบบ dict จะเป็นแบบ multiple value เหมือนกัน แต่จะต่างกันตรง dictionary มองเป็น key:value
example
&{user}= Create Dictionary firstname=PK lastname=DekD
การเรียกใช้ตัวแปรของ dictionary จะคล้ายของ list แต่ของ list จะเรียกโดยใช้ index เช่น @[products][0] จะได้ค่า celine เพราะเป็น index ที่ 0 (เหมือน array)
ส่วนของ dic จะเรียกโดยใช้ key ในการเข้าถึง เช่น ${user}[firstname] ก็จะได้ค่า PK มา
ส่วนการเอาไปใช้ สามารถเขียนได้ 2 แบบเลยนะ ผลลัพธ์ที่ได้เหมือนกันทั้ง 2 แบบ
&{user}= Create Dictionary firstname=PK lastname=DekDLog Say hi ${user}[firstname] ${user}[lastname]Log Say hi ${user["firstname"]} ${user["lastname"]}
มี Variable อีกแบบนึงใน Robot แต่เขาจะอยู่ใน Library อื่น ชื่อว่า OperatingSystem Library จะไม่ได้อยู่ใน BuiltIn เหมือน 3 แบบข้างต้น
Environment variables
Syntax จะเป็นเครื่องหมาย % (%{ENV_VAR_NAME}) ซึ่งจะดึงค่าตามที่ setting ไว้ในระบบปฏิบัติการ (OS) ซึ่งอันนี้กาดไม่เคยใช้ ลองอ่านเพิ่มเติมกันดูนะ
อ่านเพิ่มเติมต่อได้ที่ : https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#variables