Thursday, November 19, 2009

Selenium IDE ตอนที่ 1

  เวลาพัฒนาระบบเสร็จแล้ว สิ่งเเรกเลยคือ การทดสอบการทำงานของการระบบว่าถูกต้องตาม flow รึป่าว ซึ่งโปรเเกรมเมอร์อาจจะทดสอบเองหรือมี SA มาเทส ทีนี้ก็ไปทำ Integrate test แล้วก็ UAT หลังจากนั้นก็ Go live production แล้วอยู่มาวันหนึ่ง ลูกค้าเปลี่ยนไปใช้ SQLServer2008 จากเดิม SQLServer2005 ทีนี้โปรเเกรมเมอร์ทุกคนต้องมาไล่นั้งเทสโมดูลที่ตนเองเขียน โชคดีหน่อยที่ผมเขียน Selenium test ไว้ตั้งแต่ตอน dev ก็เลยเอาเเค่ไฟล์เทสมารันดูแค่นั้น

Selenium เป็นเครื่องสำหรับการทดสอบเว็บเเอพพลิเคชั้นโดยเฉพาะ  ลักษณะการทำงานเป็นเเบบ Automated test
ซึ่งมีประโยชน์มากในการทดสอบการทำงานของระบบระดับ End user ซึ่งเป็นการเทสนอกเหนือจาก functionally testing
สำหรับผลิตภัณฑ์ของ Selenium มีทั้งหมด
1. Selenium IDE
2. Selenium Remote Control
3. Selenium Grid
4. Selenium on Rails
5. Selenium on Ruby
6. CubicTest(for Eclipse)
7. Bromine
8. Selenium Core
สำหรับความสามารถหรือประโยชน์ของแต่ละท่านสามารถอ่านเองได้ที่ลิ้งของแต่ละตัวนะครับ ผมจะขอยกตัวอย่างการใช้งานแค่ Selenium IDE มาดูวิธีการใช้กันคร่าวๆ ครับ

ซึ่งแต่ละตัวมีความสามารถในการทดสอบที่แตกต่างกัน คุณสามารถที่อ่านรายละเอียดเพิ่มเติ่มที่เว็บไซต์ของ Selenium ได้ วันนี้ผมจะมาสาธิตการใช้งาน แบบคร่าวๆ นะครับ
  1. Download Selenium IDE จาก http://seleniumhq.org/download/ เลือกตัว IDE นะครับ  เนื่องจาก Selenium IDE เป็น extension บน firefox ฉะนั้นแล้วจำเป็นต้องลง firefox ก่อนนะครับ ถ้างั้นจะใช้งาน Selenium IDE ไม่ได้ ทำการ Intall Selenium IDE แบบเดียวกันกับการลง extension 
  2. เมื่อทุกอย่างเสร็จเรียบร้อยแล้วให้ไปที่เมนู Tools ของ firefox แล้วเปิด Selenium IDE ก็จะปรากฏดังรูปนี้



    ทีนี้เรามาทดสอบ google กันครับ
    ให้กรอก http://www.google.com ลงใน Textbox Base Url แล้วกดปุ่มวงกลมสีแดง เพื่อบันทึก step การค้นหา selenium โดย google เพื่อใช้ในการทดสอบ



2. จากนั้นให้ไปที่ address bar ของ firefox แล้วเข้าเว็บของ google
แล้วใส่คำค้นหาเป็น selenium แล้วคลิกปุ่ม ค้นหา แล้วย้อนไปดูที่ Selenium IDE ก็จะได้ดังรูป


3. ทีนี้ก็ลองทดสอบใช้การ assert คล้ายกับ junit ละครับ ให้คลิกขวาที่ link
อันแรกในที่นี่คือ Selenium web application testing system
แล้วเลือก VerifyTextPresent แล้วลองไปดูที่ Selenium IDE ก็จะได้ดังรูป

 
 4. ทีนี้ก็ลองปิดแทบของ firefox ที่เปิด google อยู่แล้ว
คลิกที่ play entire test suite เทสเคจ VerifyTextPresent
ก็จะผ่าน(row จะเป็นสีเขียว ไม่ผ่าน row จะเป็นสีแดง)





Sunday, November 15, 2009

Introduction CruiseControl

CruiseControl สามารถเป็นได้ทั้งสองอย่างคือ CI(Continue Integration) และ เป็นเฟริมเวิล์คที่สามารถสร้าง
รูปเเบบการ build หรือ compile ได้เอง ซึ่งตัว CruiseControl สามารถที่จะทำงานร่วมกับ Source Control ได้
อย่างมีประสิทธิภาพไม่ว่าจะเป็น CVS,SVN,Git,StarTeam อื่นๆ อีกมากสามารถได้รายละเอียดได้ที่นี่
 สำหรับการใช้ CruiseControl นั้นทำไม่ได้ไม่ยากโดยต้องเตรียมข้อมูลดังนี้
1. Download CruiseControl จาก http://cruisecontrol.sourceforge.net/download.html
2. Ant build script http://ant.apache.org/
ส่วน Web server ไม่ต้อง Download เนื่องจาก CruiseControl มี Web server ในตัวคือ Jetty Server
มีดูวิธีใช้งานกันครับ

Monday, November 9, 2009

Software หรือ tools สำหรับการทำ Integration test

   พอดีวันนี้หัวหน้าถามว่า ถ้า end user request เข้ามายังเว็บเพจ จะใช้ CPU เท่าไหร่
memory เท่าไหร่ response time เท่าไหร่ เลยนั้งหาข้อมูลเกี่ยวกับการทำ Integration test
หรือพวกการพัฒนาเเบบ TDD จึงสามารถสรุปได้ดังนี้ครับ

http://seleniumhq.org/
http://webtest.canoo.com/webtest/manual/WebTestHome.html
http://jakarta.apache.org/jmeter/

เดียววันหลังผมจะลองใช้งานแต่ละตัว แล้วจะมาเล่าให้ฟังนะครับ