Variables ใน Robot Framework

วันนี้เรามาดูตัวแปร ใน Robot Framework กันดีกว่า ดู ๆ ไปตัวแปรมันก็แปลกดีนะ มาดูกันว่าเป็นไงบ้าง Case Insensitive –> ตัวพิมพ์เล็ก – พิมพ์ใหญ่เป็นตัวเดียวกัน Ignore space –> ไม่สนใจช่องว่าง Ignore underscore –> ไม่แคร์ Underscore 555 มาดูประเภทของตัวแปรกัน ดังรูปจ้า ค่าคงที่ List Dictionary หรือ Json ตามตัวอย่าง มารันดูข้อมูลกันจะเห็นได้ว่ามันจะรันตามลำดับ ที่เราแสดง Log to console ลองดูว่าถ้าเราจะให้แสดง List เฉพาะคำว่า Chotkaew จะทำยังไง ให้มองว่า Thichaluk เป็น index ที่ 0 และ Chotkaew เป็น index ที่ 1 รันดูผลลัพธ์กัน มาลองดูของ dictionary กันบ้าง ให้แสดงค่าของ Thichaluk รันดูผลลัพธ์ ทุกคนคงจะมองเห็นการเข้าถึงข้อมูลแต่ละประเภทกันแล้วใช่มั๊ยค่ะ ต่อไปมาลองสร้าง List กับ Dictionary อย่างง่าย ๆ กัน รูปแบบคำสั่งก็ไปหาดูได้ที่ https://robotframework.org ที่ Libraries –> Builtin ที่ Builtin คลิก View หา Create List กับ Create Dictionary รันดูผลลัพธ์

Read More »

Should Be Equal ใน Robot Framework

วันนี้จะมาทดลองใช้ Should Be Equal (การเปรียบเทียบ) ใน Robot framework กันค่ะ ก่อนจะถึงคำสั่งเปรียบเทียบ เราก็ต้องเขียน Test Case อื่น ๆ กันก่อน งั้นวันนี้จะเขียนแบ่ง Test Case ให้อ่านง่าย ๆ กันไปเลย เพื่อเพื่อน ๆ จะได้นำไปประยุกต์ใช้งานกันได้ค่ะ สิ่งที่ต้องใช้ในวันนี้ คือ Notpad++ หรือ Tool อื่น ๆ ที่เพื่อน ๆ ถนัด วันนี้เราจะใช้ Visual Studio Code กันค่ะ (เพราะเหนื่อยกับการรันผ่าน command line แล้ว) มาเริ่มกันเลยดีกว่า จะเห็นว่า เรามีการตั้งชื่อ Test Case ให้อ่านง่าย เพื่อจะให้รู้ว่าแต่ละขั้นเราทำอะไร ตอนเป็น Report จะได้ดูง่ายเข้าไปอีก ค่อนไปดู Report ตอนท้าย คำสั่งนี้จะตรวจสอบว่าค่าที่ได้ตรงกันมั๊ย จะเห็นว่าเราเขียน Test Case เป็นภาษาไทยได้นะเออ จากรูปเปรียบเทียบค่าจาก xpath ที่ locator h1 ตามคำสั่ง //h1[@class=”main-header”]  เท่ากับ “ROBOT FRAME WORK/” หรือไม่ Locator ที่กล่าวคือตำแหน่งตามรูปข้างบน คราวนี้เราลองปรับให้ ${expect} ไม่ใช่ค่าเดียวกับ locator ที่เราอ้างถึง จะเห็นได้ว่าที่ log console มีการแสดงผลในการเปรียบเทียบว่าไม่เท่ากัน ไปดู Report กันซะหน่อยว่าเป็นยังไง Report ก็ดูง่ายมากเลยเห็นมั๊ยหล่ะ ^_^

Read More »

ทดสอบ API ด้วย Robot Framework (Get Request)

ก็ยังคงเขียนเกี่ยวกับ robot framework อีกนั่นแหละ ^_^ วันนี้เลยจะมาเขียนตัวอย่างการทดสอบ api ด้วย Robot Framework (Get Request) อย่างง่ายกันค่ะ สิ่งที่ต้องใช้ API  ที่จะใช้ในการทดสอบ อันนี้จะใช้ API ที่ http://thetestingworldapi.com ค่ะ เครื่องมือที่ใช้เขียน Notepad++  ^_^ Cmd ขั้นแรกเราไปที่ http://thetestingworldapi.com แล้วคลิกที่ API ในที่นี้ขอเลือก API ของ StudentsDetails ดังรูปค่ะ จากนั้นก็เปิด Notpad++ ขึ้นมาเลยค่ะ ที่ Settings ต้องเรียก Library  RequestsLibrary นะ แต่ก่อนอื่นต้องไปลง Library ตัวนี้กันก่อน โดยใช้คำสั่ง pip install robotframework-requests ถ้าลงแล้วก็จะตรวจสอบได้ โดยใช้คำสั่ง pip freeze ดังรูป มาที่ Notepad++ กันต่อ ^_^ เขียนคำสั่ง ดังนี้เลย จะเห็นได้ว่าเรามีแสดง status_code ออกมาด้วย มารู้จักความหมายของ status_code แต่ละตัวกันดีกว่า 2xx  คือ OK 3xx คือ Redirection 4xx คือ Resource not found 5xx คือ Server error มารันผลลัพธ์กันดีกว่า อันนี้ไม่ขอรัน code ในส่วนของ content นะ ไปรันกันเอาเอง เพราะมันเยอะมากตาลาย capture รูปมาก็คงดูไม่รู้เรื่อง ^_^ การทดสอบ Get Request อย่างง่าย ก็ประมาณนี้นะคะ

Read More »

Setup และ Teardown (Robot Freamwork)

หลังจากที่เราเริ่มเขียน Test Script ไปสักพัก ก็จะเริ่มมี Test Step ที่เรามักต้องทำซ้ำ ๆ กัน เช่นเวลาเริ่มต้นและส่วนท้ายของ Test Script ทำให้ Test Script ของเราดูรก อ่านยาก มี Code ซ้ำ ๆ กันเต็มไปหมด และ Test Script เองก็มี Step ที่ไม่เกี่ยวกับการ Test ปนมาเพียบเลย วันนี้เลยขอเสนอให้ลองใช้ Setup และ Tear Down เพื่อช่วยลด Step เหล่านี้จาก Test Script ของเราดู โดย Setup และ Tear Down คืออะไรมารู้จักกัน Suite Setup = ก่อนที่จะเริ่ม Run Test ทั้งหมด จะต้องเริ่มการทำงานตัวนี้ก่อน Suite Teardown = หลังจาก Run Test เสร็จทั้งหมดแล้วจะสั่งให้ทำอะไรตอนสุดท้าย Test Setup = ก่อนที่จะเริ่มเข้า Test Case ให้เริ่มการกระทำนี้ก่อน Test Teardown = หลังจากจบ Test Case แต่ละ Case ให้ทำการกระทำนี้ ตัวอย่าง จากรูปด้านบน ก่อนที่จะเริ่ม Run Test ทั้งหมด ให้เริ่มทำการเปิด Browser ก่อน เมื่อเริ่ม Test Case ให้แสดงคำว่า Start!!! และเมื่อจบ Test Case ให้แสดงคำว่า “Finish!!!” แล้วพอจบ Test ให้ทำการ ปิด Browser นี้ ดังนั้น กรณีหากเรามี Case แค่ Case เดียวอาจจะไม่จำเป็นที่จะต้องใช้ Test Setup กับ Test Teardown ก็ได้ เพราะว่าเราสามารถใช้ Suite Setup ในการเริ่มต้น และ Suite Teardown ในการจบการกระทำเลยก็ได้ ***สมมติว่า Test Case เรามี Pre-Condition ที่มี Step เหมือนกันทุก Test Case ก็ควรเอา Step นี้อยู่ใน Test Setup ข้อดีของ Setup และ Teardown ลดความซ้ำซ้อนของแต่ละ Test Script ลง ช่วยให้ดูง่ายขึ้น ช่วยทำให้เราโฟกัส กับสิ่งที่เราต้องการจะ Test ในแต่ละ Test Case ได้จริงๆ โดยไม่มี Setup Step และ Teardown Step มาทำให้ดูวุ่นวาย เกินความจำเป็น ช่วยเครียร์ Test Environment เสมอก่อนจากรัน Test และหลังจากรัน Test เสร็จ ถึง Test จะ Failed  แต่ Teardown ก็ยังทำงานต่อ จึงมั่นใจได้ว่า Test Environment ของเราสะอาดเสมอก่อนจะรัน Test ข้อต่อไป ^_^

Read More »

มารู้จัก Web Element Locator กัน

ทำไม Tester ต้องรู้จัก Web Element Locator ก็เพราะว่าทุกสิ่งทุกอย่างที่ทุกคนเห็นบนหน้าเว็บ มันคือ Web Element และ Robot Framework ก็รู้จัก หน้าเว็บจาก  Element Locator ที่เหล่า Tester กำหนดให้ในแต่ละ Test script นั่นเองค่ะ ดังนั้น Tester ควรจะต้องรู้จัก Element Locator และวิธีการใช้งานค่ะ ตัวอย่าง Locator ของ Selenium library ดังรูป Element Locator มีหลายประเภท ดังนี้ 1. Id Element ที่มีการกำหนด id ไว้ ซึ่งเราควรจะเลือกใช้ locator นี้ค่ะ มีความเสถียรมากสุด เพราะถึงแม้ว่าจะมีการเปลี่ยนย้ายตำแหน่งของ Element นี้ จะไม่กระทบ Test script ของเราเลยค่ะ ตัวอย่าง locator ::  id=u_0_n; 2. Name Element ที่มีการกำหนด name  ไว้ ตัวอย่าง locator ::  name=lastname 3. Css Selector Css เอาไว้กำหนด style รูปแบบของ element นั้นๆ ตัวอย่าง locator :: css=input#u_0_s  4. XPath XPath คืือ เป็นเส้นทางการเข้าถึงโครงสร้างภายในส่วนต่างๆของ Web ตัวอย่าง locator :: xpath=//*[@id=”u_0_z”] *เพื่อ performance ของการทดสอบที่ดี ขอแนะนำว่า เราควรจะใช้ locator ลำดับที่ 1 จนถึง 4 ตามลำดับเลยจ้า ID –> NAME –> CSS –> XPATH ตัวอย่าง Test Script ที่ใช้ Element Locator รูปแบบต่างๆ วิธีการหา Element Locator หากเราต้องการหา Locator  ในหน้า Web สามารถทำได้ง่ายมากๆ ดังนี้ Open website ที่ต้องการจะทดสอบขึ้นมา เอาเมาส์ไปจิ้ม ตรง Element ที่ต้องการ กดปุ่ม F12 เท่านี้เราก็เริ่มเขียน Test script โดยใช้ Locator เพื่อทดสอบ Web site กันได้แล้วค่ะ

Read More »