feature-image-robot-framework-101-for-beginner
feature-image-robot-framework-101-for-beginner

Robot Framework คืออะไร?

มันคือ Automation Framework สําหรับการทํา ATDD. มันมีเครื่องมือให้เราใช้งานเยอะแยะไปหมด เช่น data-driven, extend Python or Java library รวมไปถึงพวก Library ที่ทําให้เราทํางานง่ายขึ้นอย่าง Selenium2Library, Jenkins Plugins

แต่ที่เด็ดสุดๆเห็นจะเป็น report ที่ทําได้ละเอียดมากเลย

และใช้ keyword-driven เป็นหลักในการเทส (หมายถึง การเน้นเทสโดยสร้าง Keyword แล้ว resueable ไปเรื่อยๆ)

Basic Robot Framework

Structure

โครงสร้างของ Robot Framework ง่ายมากมีแค่ 4 อย่างเอง

  1. *** Settings ***
    • ไว้สําหรับ import library กับ resources file ต่างๆ รวมถึงการตั้ง teardown อื่นๆไว้
  2. *** Keywords ***
    • สร้าง keyword เก็บไว้เพื่อใช้ในการเขียน test cases ต่างๆ
  3. *** Variables ***
    • สร้างตัวแปรไว้ใช้ใน test cases ต่างๆ
  4. *** Test cases ***
    • เป็นส่วน test cases ที่ทํารวบรวมข้อมูลทั้งหมดที่เราตั้งค่าไว้ โดย test cases จะถูกสร้างขึ้นพร้อม acceptance จากลูกค้า หรือ product manager

Data Types

ใน robot framework มีอยู่ 4 แบบง่ายๆเลย

  1. Scalar = ${}
    • Scalar ก็เทียบได้กับตัวแปรประเภท String
    • เช่น ${data}  teststring
  2. List = @{}
    • List ก็เหมือน Array
    • เช่น @{list} a b c
  3. Dictionary = &{}
    • Dictionary ก็ Key-Value ทั่วไปเลย
    • เช่น &{dict} key1=value1 key2=value2
  4. Enviroment = %{}
    • Enviroment ก็เป็นตัวแปรของระบบ
    • เช่น %{JAVA_HOME} , %{USER}

Resources File

เราสามารถแยก resource ไฟล์ออกมาได้ เพื่อให้เกิด reuseable ได้ง่าย โดยการเพิ่มใน settings

แล้วเราก็เอา keyword ต่างๆไปใส่ในนั้นได้เลย

ที้นี้เวลาใครจะเอาไปใช้ก็แค่ไปเพิ่ม file นี้เข้าไปได้เลย

Variable File

คล้ายๆ Resources ไฟล์ เราก็สามารถแยก Variable ออกไปเป็นอีกไฟล์นึงได้เลย ไม่ต้องรวมทุกอย่างในไฟล์เดียวกัน

แล้วในไฟล์นั้นก็แค่ไปประกาศตัวแปรไว้

แล้วในไฟล์ที่เรา import เข้าไป ก็สามารถเรียกใช้ได้เลย โดยใช้ตามชื่อตัวแปรที่ใส่ไว้แบบนี้

ยังมีอีกวิธีนึงคือใช้ dynamic varialbes ที่สร้างขึ้นมา On the fly หรือไปโหลดตัวแปรอื่นๆมาใช้นั่นเอง แบบตัวอย่างด้านล่าง (ถ้าสังเกตุเมื่อกี้จะแนว static variable มากๆสร้างทิ้งไว้แล้วนํามาใช้)

Data-Driven Test Development

จริงๆไปอ่านตัวอย่างการใช้ data driven เหมือนจะยาก แต่จริงๆแล้วไม่ยากเลย มันมีจุดที่ให้สังเกตุอยู่แค่ 2 อย่างเอง

  • ใช้ template test อะไร
  • ใช้ argument กี่ตัวมีไรบ้าง

แบบตัวอย่างข้างล่างใช้ test template “Calculate” เราก็แค่เลื่อนไปดูว่า Calculate มันรับ arguments อะไรบ้าง

เพราะทุกๆ test cases จะใช้ test template เดียวกันหมด

Own Library

หรือเราจะใช้เทคนิคสร้าง Library ของเราเองก็ได้ แค่ลิ้งค์ไปที่ไฟล์ python ของเราใน settings

แล้วก็สร้าง function ทิ้งไว้

แล้วเราก็เรียกขึ้นมาใช้ใน test cases ของเราได้เลยง่ายๆ

IDE ใช้อะไรดี?

แนะนําเลยว่าใช้อะไรก็ได้ครับ notepad ยังได้เลย

แต่ถ้าที่แนะนําจริงๆคือ

Set ของ IDE และ Plugin ชุดนี้เลยทํางานดีมาก สามารถ track function ต่างๆ ที่เราเขียนขึ้นมาใช้ใน Robot Framework ได้ด้วย

Robot Framework compatible อะไรบ้าง?

จริงๆ มันก็ใช้กับ Python ได้ทั้งสองเวอร์ชั่นแหละ (Python 2.7 , Python 3) แต่พวก Library ต่างๆที่จําเป็นสําหรับการทําเทส เช่น Selenium2Library,RIDE มันไม่ compatible (ข่าวต้นฉบับบ 1,2) ดังนั้นจึงแนะนําให้ใช้ Python Version 2.7 ไปก่อน ณ ตอนนี้

Code อยู่ไหน?

คืออธิบายแต่บทความไม่มีโค้ดมันก็เกินไป๊

ไปเอาที่ github ของ howtoautomate.in.th เลย

1
Leave a Reply

avatar
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

newest oldest most voted
trackback

[…] Robot Framework 101 มันก็จะเป็นการทํา testing ฝั่ง Presentation Layer […]