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

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

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

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

by chbbk » 25/09/2014 3:03 pm

ตัวอย่างนี้เป็นการใช้ selenium เพื่อตรวจสอบความถูกต้องของหน้ารายงานสรุปสินค้าประจำวันและประจำดือน
การทำงานก็จะเริ่มจากใส่ปีและเดือนลงไปเพื่อค้นหารายงานประจำเดือนนั้น
และมีลิ้งค์ให้สามารถคลิกเข้าไปดูแยกเป็นรายวันได้
ทั้งแบบรายวันและรายเดือนจะมีลิสของสินค้าไว้และทำการรวมค่าสรุปในตอนท้าย
selenium ที่เขียนนี้จะทำการรวมค่าของข้อมูลแล้วเปรียบเทียบกับที่แสดงในหน้ารายงานว่าตรงกันหรือไม่
ถ้าไม่ตรงจะเด้งป็อปอัพเตือนและหยุดการเทส
*ขออภัยที่ไม่มีเว็บให้ลองนะคะ ดูแต่โค้ดไปแล้วกันเนาะ
**โค้ดทั้งหมดมันต่อกันเป็นชุดเดียวนะคะดูให้มันต่อกันนะ อิอิ
จะอธิบายแต่ละคำสั่งแบบสั้นๆนะคะ
รายละเอียดการใช้การทำงานของแต่ละคำสั่งอ่านได้ในกระทู้คำสั่งนั้นๆค่ะ
1.jpg
1.jpg (166.65 KiB) Viewed 817 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 817 times
กรอบสีแดง
บรรทัดแรกนับจำนวนแท็ก <tr> ทั้งหมดในหน้านั้นแล้วลบออกด้วยจำนวนช่องที่เราไม่ต้องการใช้
ที่เหลือเป็นการกำหนดค่าเริ่มต้นให้ตัวแปรต่างๆที่เราจะใช้ต่อไป
กรอบสีเขียว
เริ่ม while loop ที่สองใช้หาค่ารวมของข้อมูลในหน้ารายงานรายวัน
วนรับค่าจากในตารางทีละบรรทัดและแปลงค่าที่รับมาจาก string เป็น float
3.jpg
3.jpg (181.07 KiB) Viewed 817 times
กรอบสีฟ้า
ใช้ gotoIf เพื่อเก็บผลรวมแยกตามประเภทไม้
เช่นถ้าเป็นไม้เชื้อเพลิงก็จะข้ามไปทำงานที่ label typeFuel เสร็จแล้วก็จะข้ามไปทำงานต่อที่ label finish
4.jpg
4.jpg (222.36 KiB) Viewed 817 times
label finish เพิ่มค่าตัววนลูปไปอีก1 (k++) เมื่อครบเแล้วจบลูปที่2
จากนั้นเก็บค่ายอดรวมที่แสดงในหน้าเว็บมาแปลงเป็น floatและตัดจุดเป็นทศนิยม2ตำแหน่งทั้งหมด
5.jpg
5.jpg (198.58 KiB) Viewed 817 times
เปรียบเทียบว่าผลรวมที่หน้าเว็บกับที่รวมเองนั้นเท่ากันหรือไม่
ถ้าไม่เท่ากันจะข้ามการทำงานไปที่ label ที่กำหนดเพื่อเด้งป็อปอัพเตือนและจบการเทสทันที
ถ้าเท่ากันทั้งหมดก็จะข้ามการทำงานไปที่ label continue
*จริงๆมันหยุดทำงานตั้งแต่ คำสั่ง assertEval ได้ค่าเป็นเท็จละค่ะ
แต่เพื่อความไม่ประมาทเลยแถม label stop ให้อีกอัน ฮ่าๆ
6.jpg
6.jpg (149.54 KiB) Viewed 817 times
label continue อยู่ตรงนี้
การทำงานที่ทำต่อจาก label continue คือคลิกที่ลิ้งค์ Back กลับไปหน้ารายงานแบบรายเดือน
7.jpg
7.jpg (192.52 KiB) Viewed 817 times
อ่านและแปลงค่ารวมของไม้ชนิดต่างในหน้ารายงานประจำเดือนเป็น float แล้วบวกรวมไว้
เมื่อทำจนครบตามจำนวนที่กำหนดไว้ตั้งแต่ loop แรกก็จบการทำงาน while loop แรก
8.jpg
8.jpg (206.19 KiB) Viewed 817 times
แปลงค่าเป็น float ทศนิยม2ตำแหน่ง แล้วเอาผลรวมในหน้าเว็บมาเปรียบเทียบกับที่รวมเองว่าเท่ากันหรือไม่
ถ้าไม่เท่ากันก็จะข้ามการทำงานไปที่ label ที่กำหนดเด้งป็อปอัพเตือนและจบการรันสคริปต์ทันที
เหมือนกับการเทียบค่าในหน้ารายวันค่ะ
9.jpg
9.jpg (54.06 KiB) Viewed 817 times
label stop เด้งป็อปอัพบอกว่าเทสจบละนะ !

Top