ประเภท Variable ใน Robot framework

KakyKad
3 min readSep 7, 2022

--

สวัสดีฮะ สัปดาห์นี้ทางบริษัทได้มีการส่งทีม 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
โดย firstname เป็น key ส่วน PK เป็น value lastname ก็เช่นกัน

การเรียกใช้ตัวแปรของ 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

--

--