
Deprecated: Function create_function() is deprecated in /home/howtoaut/domains/howtoautomate.in.th/public_html/wp-content/plugins/wp-spamshield/wp-spamshield.php on line 2033
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 อย่างเอง
- *** Settings ***
- ไว้สําหรับ import library กับ resources file ต่างๆ รวมถึงการตั้ง teardown อื่นๆไว้
- *** Keywords ***
- สร้าง keyword เก็บไว้เพื่อใช้ในการเขียน test cases ต่างๆ
- *** Variables ***
- สร้างตัวแปรไว้ใช้ใน test cases ต่างๆ
- *** Test cases ***
- เป็นส่วน test cases ที่ทํารวบรวมข้อมูลทั้งหมดที่เราตั้งค่าไว้ โดย test cases จะถูกสร้างขึ้นพร้อม acceptance จากลูกค้า หรือ product manager
Data Types
ใน robot framework มีอยู่ 4 แบบง่ายๆเลย
- Scalar = ${}
- Scalar ก็เทียบได้กับตัวแปรประเภท String
- เช่น ${data} teststring
- List = @{}
- List ก็เหมือน Array
- เช่น @{list} a b c
- Dictionary = &{}
- Dictionary ก็ Key-Value ทั่วไปเลย
- เช่น &{dict} key1=value1 key2=value2
- 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 ยังได้เลย
แต่ถ้าที่แนะนําจริงๆคือ
- Pycharm
- Plugins
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 เลย
[…] Robot Framework 101 มันก็จะเป็นการทํา testing ฝั่ง Presentation Layer […]