Selenium IDE - ตัวอย่างการเขียน selenium ให้ตรวจสอบความถูกต้องของข้อมูล

Software testing ความรู้ สำหรับ Tester ผู้ทดสอบ เป็นส่วนสำคัญในการ test โปรแกรม การ ทดสอบโปรแกรมมีความรู้แนะนำไว้ในหมวดนี้

Moderator: mindphp, ผู้ดูแลกระดาน

chbbk
PHP VIP Members
PHP VIP Members
โพสต์: 2969
ลงทะเบียนเมื่อ: 08/09/2014 10:34 am

Selenium IDE - ตัวอย่างการเขียน selenium ให้ตรวจสอบความถูกต้องของข้อมูล

โพสต์ที่ยังไม่ได้อ่าน โดย chbbk »

ตัวอย่างนี้เป็นการใช้ selenium เพื่อตรวจสอบความถูกต้องของหน้ารายงานสรุปสินค้าประจำวันและประจำดือน
การทำงานก็จะเริ่มจากใส่ปีและเดือนลงไปเพื่อค้นหารายงานประจำเดือนนั้น
และมีลิ้งค์ให้สามารถคลิกเข้าไปดูแยกเป็นรายวันได้
ทั้งแบบรายวันและรายเดือนจะมีลิสของสินค้าไว้และทำการรวมค่าสรุปในตอนท้าย
selenium ที่เขียนนี้จะทำการรวมค่าของข้อมูลแล้วเปรียบเทียบกับที่แสดงในหน้ารายงานว่าตรงกันหรือไม่
ถ้าไม่ตรงจะเด้งป็อปอัพเตือนและหยุดการเทส
*ขออภัยที่ไม่มีเว็บให้ลองนะคะ ดูแต่โค้ดไปแล้วกันเนาะ
**โค้ดทั้งหมดมันต่อกันเป็นชุดเดียวนะคะดูให้มันต่อกันนะ อิอิ
จะอธิบายแต่ละคำสั่งแบบสั้นๆนะคะ
รายละเอียดการใช้การทำงานของแต่ละคำสั่งอ่านได้ในกระทู้คำสั่งนั้นๆค่ะ
1.jpg
1.jpg (166.65 KiB) Viewed 1665 times
1.สั่ง open เปิด url ที่เราจะทำงาน
2. click ที่ลิ้งค์ HOME (<a href=url>HOME</a>)
3. waitForVisible รอให้ลิ้งค์ Previous ปรากฏบนหน้าเว็บก่อนถึงจะทำงานต่อไป
4. ใส่ค่าปีที่เราต้องการลงไป ในที่นี้คือ 2011 (ไม่ได้ทำสุ่มปีเนื่องจากไม่ทราบช่วงข้อมูลแน่ชัด)
5. เขียน javascript สุ่มเดือนและเติม0ลงไปด้านหน้าถ้าเป็นเลข 1-9
6. พิมปีและเดือนในช่องค้นหาเป็นรูปแบบ yyyy-mm
7. กดปุ่ม submit
8. รอให้ลิ้งค์ Previous ปรากฏบนหน้าเว็บก่อนถึงจะทำขั้นต่อไป
9. storeXpathCount สั่งให้นับจำนวน <a href=''> ทั้งหมดในหน้านั้น
10. เอาจำนวนที่นับได้มาลบออก 5 ซึ่งเป็นลิ้งค์อื่นๆที่เราไม่ต้องการ
ตรงกรอบเบอร์4 จะเป็นการประกาศและแปลงค่าตัวแปรให้เป็น float รอไว้เพื่อใช้เก็บค่าไปหาผลรวมในภายหลัง
กรอบสีเหลือง เริ่มคำสั่ง while loop แรกเพื่อวนคลิกเข้าทุกลิ้งค์ที่เป็นรายงานประจำวัน
2.jpg
2.jpg (165.67 KiB) Viewed 1665 times
กรอบสีแดง
บรรทัดแรกนับจำนวนแท็ก <tr> ทั้งหมดในหน้านั้นแล้วลบออกด้วยจำนวนช่องที่เราไม่ต้องการใช้
ที่เหลือเป็นการกำหนดค่าเริ่มต้นให้ตัวแปรต่างๆที่เราจะใช้ต่อไป
กรอบสีเขียว
เริ่ม while loop ที่สองใช้หาค่ารวมของข้อมูลในหน้ารายงานรายวัน
วนรับค่าจากในตารางทีละบรรทัดและแปลงค่าที่รับมาจาก string เป็น float
3.jpg
3.jpg (181.07 KiB) Viewed 1665 times
กรอบสีฟ้า
ใช้ gotoIf เพื่อเก็บผลรวมแยกตามประเภทไม้
เช่นถ้าเป็นไม้เชื้อเพลิงก็จะข้ามไปทำงานที่ label typeFuel เสร็จแล้วก็จะข้ามไปทำงานต่อที่ label finish
4.jpg
4.jpg (222.36 KiB) Viewed 1665 times
label finish เพิ่มค่าตัววนลูปไปอีก1 (k++) เมื่อครบเแล้วจบลูปที่2
จากนั้นเก็บค่ายอดรวมที่แสดงในหน้าเว็บมาแปลงเป็น floatและตัดจุดเป็นทศนิยม2ตำแหน่งทั้งหมด
5.jpg
5.jpg (198.58 KiB) Viewed 1665 times
เปรียบเทียบว่าผลรวมที่หน้าเว็บกับที่รวมเองนั้นเท่ากันหรือไม่
ถ้าไม่เท่ากันจะข้ามการทำงานไปที่ label ที่กำหนดเพื่อเด้งป็อปอัพเตือนและจบการเทสทันที
ถ้าเท่ากันทั้งหมดก็จะข้ามการทำงานไปที่ label continue
*จริงๆมันหยุดทำงานตั้งแต่ คำสั่ง assertEval ได้ค่าเป็นเท็จละค่ะ
แต่เพื่อความไม่ประมาทเลยแถม label stop ให้อีกอัน ฮ่าๆ
6.jpg
6.jpg (149.54 KiB) Viewed 1665 times
label continue อยู่ตรงนี้
การทำงานที่ทำต่อจาก label continue คือคลิกที่ลิ้งค์ Back กลับไปหน้ารายงานแบบรายเดือน
7.jpg
7.jpg (192.52 KiB) Viewed 1665 times
อ่านและแปลงค่ารวมของไม้ชนิดต่างในหน้ารายงานประจำเดือนเป็น float แล้วบวกรวมไว้
เมื่อทำจนครบตามจำนวนที่กำหนดไว้ตั้งแต่ loop แรกก็จบการทำงาน while loop แรก
8.jpg
8.jpg (206.19 KiB) Viewed 1665 times
แปลงค่าเป็น float ทศนิยม2ตำแหน่ง แล้วเอาผลรวมในหน้าเว็บมาเปรียบเทียบกับที่รวมเองว่าเท่ากันหรือไม่
ถ้าไม่เท่ากันก็จะข้ามการทำงานไปที่ label ที่กำหนดเด้งป็อปอัพเตือนและจบการรันสคริปต์ทันที
เหมือนกับการเทียบค่าในหน้ารายวันค่ะ
9.jpg
9.jpg (54.06 KiB) Viewed 1665 times
label stop เด้งป็อปอัพบอกว่าเทสจบละนะ !
Trust me, I'm a Programmer
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 28