Robot Framework 101 มาเทสกันเถอะ

สวัสดีครับ, การทำ Acceptance Testing หรือการทดสอบการทำงานของระบบที่สร้างขึ้น ให้ง่ายและรวดเร็วด้วยการทำ Automate Testing นั้นมี Framework ที่น่าสนใจตัวหนึ่ง…ตอนนี้ขอเสนอ Robot Framework

เนื้อหาผมจะเขียนเป็น 2 เรื่อง

  1. Test website
  2. Test api

ซึ่งบทความนี้จะเป็นการ Test web และเริ่มตั่งแต่ติดตั้ง ลุยกันเลยดีกว่า

  1. ติดตั้ง pip และ virtualenv

virtualenv จะช่วยในการจัดการ dependency ต่าง ๆ ตาม version ของ python บนเครื่องเดียวกัน เพราะเวลาเราทำงานหลาย ๆ โปรเจค แต่ละโปรเจคอาจจะต้องการใช้ Python library version ต่างกัน การลงทุก version ในเครื่องจะทำให้ library ตีกันได้ง่าย เราก็เลยใช้ virtualenv ในการแยก environment การทำงานออกจากกัน

1.1 ติดตั้ง pip ด้วย easy_install

pip และ easy_install เป็น tool ที่ใช้ในการ download และ install python package

$ sudo easy_install pip

1.2 ติดตั้ง virtualenv

$ sudo pip install virtualenv virtualenvwrapper --ignore-installed six

2. Config shell ให้รู้จัก command pip กับ virtualenv

สำหรับbash

$ echo export WORKON_HOME=$HOME/.virtualenvs >> ~/.bashrc
$ echo source /usr/local/bin/virtualenvwrapper.sh >> ~/.bashrc
$ echo export PIP_VIRTUALENV_BASE=$WORKON_HOME >> ~/.bashrc
$ source ~/.bashrc

สำหรับzsh

$ echo export WORKON_HOME=$HOME/.virtualenvs >> ~/.zshrc
$ echo source /usr/local/bin/virtualenvwrapper.sh >> ~/.zshrc
$ echo export PIP_VIRTUALENV_BASE=$WORKON_HOME >> ~/.zshrc
$ source ~/.zshrc

หลังจากพิมพ์คำสั่งจบในไฟล์ .zshrc จะมีเพิ่มเข้ามา

3. สร้าง virtual environment สำหรับรัน robot

3.1 ขั้นตอนนี้เราจะสร้าง virtual environment สำหรับ robot กัน

$ mkvirtualenv <environment_name>

3.2 เวลาจะใช้ก็

$ workon <environment_name>

คำสั่งการใช้งาน virtualenvwrapper

  • $ mkvirtualenv <environment_name> (สร้าง virtualenv ใหม่ )
  • $ rmvirtualenv <environment_name> (เอา virtualenv ที่มีอยู่ออก )
  • $ workon <environment_name> (เปลี่ยน virtualenv ปัจจุบัน )
  • $ deactivate(ปิด virtualenv)
  • $ cdsitepackages (เข้าไปในพื้นที่ไดเรกทอรีของแพคเกจ virtualenv ปัจจุบัน )
  • $ cdvirtualenv (เข้าไปในรากของ virtualenv ปัจจุบัน )

3.3 สร้าง file requirements.txt แล้ว list libraries installed

beautifulsoup4==4.5.1
decorator==4.0.10
jsonpatch==1.14
jsonpointer==1.10
requests==2.11.1
robotframework==3.0
robotframework-httplibrary==0.4.2
robotframework-requests==0.4.5
robotframework-selenium2library==1.8.0
selenium==2.53.6
six==1.10.0
waitress==1.0.0
WebOb==1.6.1
WebTest==2.0.23

3.4 ติดตั้ง package ด้วยคำสั่ง

$ pip install -r requirements.txt

ลองรัน Robot กันดีกว่า

สร้างไฟล์ test.robot

robot แต่ละคำสั่งหรือคีย์เวิร์ดจะต้องห่างกัน 4 space

*** Settings ***
Library Selenium2Library
*** Test Cases ***
Wikipedia search
Open Browser https://en.wikipedia.org Chrome
Page Should Contain Welcome to Wikipedia
Input text //*[@id="searchInput"] Robot Framework
Click Element //*[@id="searchButton"]
Page Should Contain The Robot Framework is a generic test automation
Close Browser

*** Setting *** จะทำการ import Selenium2Library เข้ามา (Library Selenium2Library)

*** Test Cases *** เป็น test case ที่เราจะให้ทำอะไรบ้าง

เราจะใช้ Selenium2Library และ Chrome driver

Download Chrome driver

จากนั้นเอา chromedriver ไว้ที่ /usr/local/bin

$ mv /Users/pitchanond./Downloads/chromedriver /usr/local/bin

คำสั่งด้านบนคือ ย้ายไฟล์ chromedriver จาก /Downloads ไปที่ /usr/local/bin

รันคำสั่ง

$ pybot test.robot

Robot จะเริ่มทำงานโดยการเปิด browser ขึ้นมาจากนั้นจะทำตาม test case ที่เขียนไว้

1. Open Browser https://en.wikipedia.org Chrome
2. Page Should Contain Welcome to Wikipedia

3. Input text //*[@id=”searchInput”] Robot Framework
4. Click Element //*[@id=”searchButton”]

5. Page Should Contain The Robot Framework is a generic test automation

จบแล้วสำหรับ robot เบื้องต้นสำหรับเว็บ อนาคตผมจะเขียนลึกลงอีกในบทความหน้าครับ