Automated Testing — 101 — เริ่มต้นเขียน Robot Script

Fon Phannida 🐞
3 min readJul 14, 2016

--

หลังจากเราได้ ติดตั้ง โปรแกรมเสร็จแล้ว วันนี้เรามาลองเขียน Robot Script โดยการเรียกใช้งาน Selenium2Library กัน

เริ่มต้นด้วยการสร้างโปรเจ็คและสร้างไฟล์ .txt ขึ้นมา โดยการคลิ๊กขวาตรงโปรเจคที่เราสร้าง เลือก New > File จากนั้นก็ตั้งชื่อ และกดปุ่ม OKๆ

ทีนี้ก็มาถึงเวลาของการเขียน Robot Script (แบบซิมเปิ้ลๆ) กันแล้ว ขอสมมติสถานการณ์ว่าเราจะเทสการค้นหาใน Google Search แล้วกันนะคะ ถ้ามันยากไปเดียวจะกลับมาเปลี่ยน 55

โครงสร้างหลักในการเขียน Robot Script ก็จะมีดังนี้

*** Settings ****** Variables ****** Keywords ****** Test Cases ***

ในส่วนของ Setting จะเป็นการกำหนด Library, Resource File, Metadata ต่างๆ ตัวอย่างเช่น

*** Settings ***
Documentation
A test suite containing tests related to search some keywords on Google search
... Created By Phannida P

Library Selenium2Library

หลังจากเสร็จในส่วนของ Setting มาต่อกันที่ Variables

Variables ก็คือตัวแปรนั้นละ เราสามารถประกาศและเรียกใช้ได้ ส่วน Syntax ในการประกาศสามารถใช้ ${variable} แบบนี้ ตัวอย่างเช่นต้องการหา Medium ของเรา ก็ประกาศเป็นดังนี้

*** Variables ***
${SearchKeyword}
fon phannida on medium

ต่อไปเป็น Keywords ตัวนี้เปรียบเสมือน Action ว่าเราต้องการจะทำอะไรบ้าง เราสามารถดูว่ามี Keyword อะไรที่เราจะใช้ได้บ้างและเงื่อนไขการใช้งาน สามารถศึกษาจากลิงค์นี้ >> คลิ๊ก <<

เนื่องจากเราจะเทสการค้นหาใน Google Search ขั้นตอนของเราก็จะมี

  1. เปิด Website บน Browser
  2. ใส่ คำค้นหา และกด Enter
  3. รอผลการค้นหา
  4. ปิด Browser

พอเรานำขั้นตอนเหล่านี้มาเขียนเป็น Keywords ก็จะได้ดังนี้

*** Keywords ***
Open Google Search Page
open browser https://www.google.co.th firefox

Search on Google
input text lst-ib Fon phannida on medium
press key lst-ib \\13 # ASCII code for enter key
Wait for Search Results
wait until page contains Fon Phannida — Medium

Close Browser After Finish
close browser

เมื่อเราได้ Keywords มาแล้วเราก็มาเริ่มทำ Test Case กัน เราสามารถสร้าง Test Case ได้ดังนี้ (ในกรณีที่เรายังไม่ได้ทำ section *** Keywords *** นะคะ)

*** Test Cases ***
Test Case: Search some keywords on Google search
open browser https://www.google.co.th
input text lst-ib Fon phannida on medium
press key lst-ib \\13 # ASCII code for enter key
wait until page contains Fon Phannida — Medium
close browser

หรือเมื่อเราสร้าง Keywords ไว้ใน Section *** Keywords *** อยู่แล้วเราสามารถเรียกมาใช้งานได้ดังนี้

*** Test Cases ***
Test Case: Search some keywords on Google search
Open Google Search Page
Search on Google
Wait for Search Results
Close Browser After Finish

ในการเขียน Test Case เราจำเป็นต้องมีชื่อเคสก่อน ในตัวอย่างเราใช้ Test Case: Search some keywords on Google search

การเขียนแบบที่สองนี้จะทำให้เราสามารถ Reuse Script ไปใช้ในเคสอื่นๆได้อีกด้วย

เมื่อเราเขียนครบทุกส่วนแล้ว และได้แก้ไขให้ Script สามารถนำไป Reuse ได้ต่อ ไฟล์สคริปของเราก็จะออกมาประมาณนี้

*** Settings ***
Documentation
A test suite containing tests related to search some keywords on Google search
... Created By Phannida P
Library Selenium2Library
*** Variables ***
${URL}
https://www.google.co.th
${Browser} firefox
${DELAY} 0
${SearchKeyword} Fon phannida on medium
${PageContainKeyword} Fon Phannida — Medium
*** Keywords ***
Open Google Search Page
open browser ${URL} ${Browser}
Maximize Browser Window
Set Selenium Speed ${DELAY}

Search on Google
input text lst-ib ${SearchKeyword}
press key lst-ib \\13 # ASCII code for enter key

Wait for Search Results
wait until page contains ${PageContainKeyword}

Close Browser After Finish
close browser



*** Test Cases ***
Test Case: Search some keywords on Google search
Open Google Search Page
Search on Google
Wait for Search Results
Close Browser After Finish

เมื่อได้ Robot Script แล้วก็ Run ดูผลลัพธ์กัน โดยใช้คำสั่งล่างข้างนี้ถ้าหากว่าใช้ Robot Framework 3.0 อยู่

robot FirstRobotScript.txt

หรือถ้าเป็น Robot Framework version เก่าๆสามารถใช้คำสั่งนี้

pybot FirstRobotScript.txt

เมื่อ Runแล้วเราก็จะได้…

เรายังสามารถเปิดดู Report ผลการเทสได้อีกด้วย

เท่านี้ก็เป็นอันเสร็จสิ้นการเขียน Robot Script (แบบซิมเปิ้ลๆ)แล้ว ดูไม่ยากเลยเน๊อะ

--

--

Fon Phannida 🐞

I’m Fon. Interested in Pilates, Yoka, Diving, Surfing, Data, and Games.