Hudson Test ใน ofbiz

หลังจากที่เราเขียนหรือเพิ่มเติมโคดต่างๆ ลงใน ofbiz แล้ว เราสามารถทดสอบผลลัพธ์ได้ครับ สิ่งแรกๆที่เราทำกันคือการทดสอบด้วยตัวเองก่อน แต่หากจะทดสอบโดยใช้เครื่องมือที่มีอยู่แล้วใน ofbiz ซึ่งตอนนี้มีอยู่สองตัวคือ Selenium และ Hudson ในหัวข้อนี้จะกล่าวถึงการทดสอบโดยใช้ Hudson ครับซึ่งเป็นการทดสอบไม่ว่าจะเป็นพวก service ที่เป็นที่ simple service และ java service พวกที่เป็น event ทั้งที่ event ที่เขียนโดย mini-language หรือ ที่เป็น event java อีกทั้งการทดสอบ seed data ด้วย งั้นเรามาเริ่มกันเลยครับ
เมื่อเราได้ทำการสร้าง component ใหม่ จะสังเกตว่ามีโฟรเดอร์ที่ชื่อ testdef อยู่ใน component ที่เราสร้างขึ้นครับ และ ภายโฟรเดอร์นี้แหละครับที่เราจะทำการเขียนไฟล์เพื่อทดสอบ ดังรูป
From Programming Hunter

หากเราสร้างไฟล์ทดสอบขึ้นมาแล้ว ในโฟรเดอร์ ตัวอย่างไฟล์ชื่อ CatalogTest.xml สิ่งที่เราต้องทำต่อไปคือการประกาศไว้ในไฟล์ ofbiz-component.xml ดังรูป
From Programming Hunter
เมื่อเราประกาศเสร็จแล้วเรามาดูภายในไฟล์ CatalogTest.xml กันครับว่ามีอะไรบ้าง ดังรูป
From Programming Hunter
จากรูปในตัวเลขที่ 1 หมายถึงการกำหนดชื่อ suite ครับว่าไฟล์นี้ชื่อ test- suite ว่าอะไร และในภายใต้ test- suite ก็จะมีอีกสองตัวคือแท็ก test-case และ test-group ในรูปเราจะเห็นแต่ test-case ครับ เรามาดูตัวอย่าง test-case ที่เป็น หมายเลข 2 กันครับ ซึ่งเป็น test ข้อมูลพื้นฐานที่จะเอาเข้าระบบ เป็นการทดสอบนำข้อมูลเข้าตารางด ซึ่งเวลาใช้ เราจะในแท็ก entity-xml ตามด้วย location ที่อยู่ของไฟล์ seed ของเรา ในที่นี้มีชื่อไฟล์ว่า ProductPriceTestData.xml เรามาดูข้อมูลดังกล่าวกันเลยดังรูป
From Programming Hunter

ซึ่งเป็นข้อมูลทั่วไปที่เราดูได้จาโฟรเดอร์ data ในทุก component ของ ofbiz ต่อไปเรามาดูที่เลข 3 กัน เป็นการทดสอบแบบ simple-method-test เราสามารถทำการทดสอบเรียกใช้ service หรือ event จากแท็กนี้โดยส่วนใหญ่จะทดสอบฟังก์ชั่นที่เขียนโดย mini-language เรามาดู ProductPriceTests.xml ครับ
From Programming Hunter
จากรูป แสดงให้เห็นว่ามีการกำหนดค่าต่างๆไว้เรียบร้อยแล้วเพราะฉะนั้นเวลาทดสอบระบบ ระบบก็จะเอาข้อมูลดังกล่าวทดสอบ ในขั้นตอนของเลข 3 นั้นเราสามารถระบุ name ได้ด้วยเพื่อเราจะระบุได้ว่าจะทดสอบ method ใด หากไม่ได้ทำการระบุชื่อไว้ ระบบก็จะทดสอบไฟล์ดังกล่าวทั้งหมดครับ กรณีต่อไปหากเรายังไม่ชำนาญ mini-language แล้ว ก็มีวิธีอื่นครับ คือการใช้ภาษา java ในการทดสอบดังรูป
From Programming Hunter
จากรูปเป็นการเรียกใช้เพื่อทดสอบไฟล์ทดสอบที่เขียนโดย java ครับ ซึ่งหลักการก็เหมือนทั่วไปคือการกำหนดข้อมูลต่างให้เรียบร้อยในไฟล์ทดสอบนั้นๆดังรูป
From Programming Hunter
กรณีสุดท้ายเป็นการทดสอบรัน service test ครับ ดังรูป
From Programming Hunter
ซึ่งเราสามารถเรียก service ทดสอบที่เราสร้างขึ้นได้ เรามาดู service ดังกล่าวกันครับ
From Programming Hunter
จากservice ดังกล่าว จะเห็นว่ามีการก็เรียกไฟล์ทดสอบที่เขียนไว้แล้วได้ไม่ว่าจะเรียกที่เป็นไฟล์ java หรือ simple-method อีกที ตามคุณสมบัติของ service ครับ
หลังจากที่เราเขียนไฟล์ทดสอบดังกล่าวเสร็จแล้วเราสามารถรันเพื่อทดสอบได้ครับโดยใช้คำสั่งดังต่อไปนี้ ให้พิมพ์คำสั่ง ./ant -p เพื่อดูว่าเราสามารถใช้คำสั่งอะไรบ้างที่ใช้ในการทดสอบดังรูป
From Programming Hunter

โดยคำสัง
./ant run-tests

จะใช้ในกรณีต้องการทดสอบ test ที่มีอยู่ใน ofbiz ทั้งหมด
ส่วนคำสั่ง
./ant run-single-test -Dtest.component=catalog -Dtest.case=loadProductPriceTestData

ใช้ในกรณีที่เราต้องการทดสอบเฉพาะ case นั้นๆโดยเราจะต้องระบุชื่อ component และ case จากตัวอย่าง component ชื่อ catalog และ case ชื่อ loadProductPriceTestData เป็นชื่อ case ตัวอย่างของหมายเลข 2
ส่วนคำสั่งสดุท้าย
./ant run-single-test-suite -Dtest.component=catalog -Dtest.suiteName=catalog

ใช้ในกรณีที่เราต้องการทดสอบเฉพาะ test-suite นั้นๆโดยเราจะต้องระบุชื่อ component และชื่อ test-suite จากตัวอย่าง component ชื่อ catalog และ test-suite ชื่อ test-suite เป็นชื่อ test-suite ของไฟล์นั้นเพื่อทดสอบทุกๆ case ใน test-suite นั้นๆ ตัวอย่างของหมายเลข 1
เมื่อเรารันคำสังดังกล่าวไปแล้วเราสามารดูผลลัพธ์ได้สองทางคือจาก Terminal ดังรูป
From Programming Hunter
จากรูปจะบอกเราว่าการทดสอบผ่านหรือไม่, ทดสอบจำนวนกี่รายการ, failed กี่รายการ และ error กี่รายการซึ่งรายละเอียดก็จะบอกใน Terminal เช่นกัน อีกวิธีหนึ่งคือเมื่อเราทำการทดสอบแล้วระบบจะสร้างไฟล์ผลการทดสอบไว้ใน ofbiz ที่ ofbiz/runtime/logs/test-results/ เราสามารถดูรายละเอียดตรงนี้ได้เช่นกัน
เราสามารถดูตัวอย่างอื่นเพื่อทำความเข้าใจจากข้อมูลตัวอย่างที่มีอยู่แล้วใน ofbiz ครับ

About Nop

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment

0 comments:

Post a Comment