Blog ของ Robot framework ก็ดำเนินมาถึงเรื่องราวที่ซับซ้อนมากยิ่งขี้นแล้ว โดยคราวนี้เราจะมาคุยกันเรื่องการพัฒนา Library ไว้ใช้เองครับ โดยปกติแล้วเรามักจะไปหา Library ของ Robot framework จาก 3rd parties จากหลายๆแหล่งมาช่วยในการพัฒนาให้การเขียน test script ทำได้ง่าย และสะดวกยิ่งขึ้น แต่บางกรณีอาจพบว่า Library ที่มีอยู่แล้วไม่ตอบโจทย์รูปแบบการทดสอบของ Application ของเรา ทำให้บางครั้ง การพัฒนา Library มาใช้เอง ก็เป็นตัวเลือกที่ดีเช่นกันครับ

เมื่อไหร่เราควรพัฒนา Library ไว้ใช้เอง

หากเราหา Library ในตลาดแล้วไม่พบ Library ที่เหมาะกับการใช้งานของเราเลย และการใช้งาน จำเป็นต้องใช้ซ้ำๆในหลายๆส่วน และยากที่จะเขียนให้อยู่ในรูปแบบ Keyword หรือ Resource file ได้ครับ เพราะการที่เราพัฒนา Library ไว้ใช้เอง ก็จำเป็นต้องคอยดูแล และอัพเดทให้ Code ยังใช้งานได้อยู่เสมอ

รูปแบบการพัฒนา Library ไว้ใช้เอง

หลักๆเลยผมมักนิยม 2 เทคนิคนี้ครับ

  1. เขียนเป็น Function ด้วย Python อยู่ใน file เดียว แล้ว include Python file ไปใช้ตรงๆเลย อันนี้มักใช้ในกรณีที่ function ไม่ซับซ้อนมากนัก เช่นต้องการ function ช่วยคำนวนเรื่องของวันทำงานใน 1 เดือน และหักวันหยุดเสาร์ อาทิตย์ออก เป็นต้น
  2. สร้างเป็น Library แบบเดียวกับที่เรานิยมใช้งานกัน ตัวอย่างเช่น Selenium Library นั่นเอง โดยการสร้าง Library แบบนี้ ยังแบ่งแยกย่อยได้คือ Static Library, Dynamic Library และ Hybrid Library (เอาไว้มาคุยกันในบทความต่อๆไปครับ)

Tools ที่ในการใช้เขียน Library

เนื่องจากการเขียน Library ค่อนข้างมีความซับซ้อน ผมจึงมักใช้ PyCharm ในการเขียน เพราะสามารถสั่ง Execute Test, Debug และ รองรับการใช้งาน virtualenv ได้อย่างครบครัน

ตัวอย่าง Python Function

Code ด้านล่างเป็นตัวอย่าง Python Function สำหรับการแปลงค่าเงินจาก USD ไปเป็นค่าเงินประเทศอื่นๆ โดยอ้างอิงจาก exchangerate-api.com ครับ

import requests

def convert_usd_to(currency, amount):
	url = 'https://api.exchangerate-api.com/v4/latest/USD'
	response = requests.get(url)
	data = response.json()
	return data['rates'][currency] * float(amount)

การเรียกใช้งานผ่าน Robot Test script ก็เพียงแค่ import library ไปยัง file currency_coverter.py ตรงๆได้เลยครับ

*** Settings ***
Library    currency_converter.py    

*** Test Cases ***
Demo how to call python function
    ${thb} =     Convert Usd To    THB    20
    Log    ${thb}

ตัวอย่าง source code จาก Github ตาม link นี้ครับ

บทความหน้าเรามาดูการเขียน Robot Library
แบบเจาะลึกกันครับ

Previous articleเขียน Test Script ภาษาคนด้วย ATDD + Robotframework กัน
Next articleมีอะไรใหม่บ้างกับ Robot Framework 2019