วิธีสร้างรายงานขอบเขตในซีลีเนียม
เผยแพร่แล้ว: 2021-06-21ไลบรารีโอเพนซอร์ซที่ใช้สำหรับการทดสอบระบบอัตโนมัติในซีลีเนียมคือ ExtentReports กรอบการทดสอบ NUnit, JUnit ฯลฯ สามารถรวมเข้ากับไลบรารีได้ รายงานที่สร้างขึ้นในซีลีเนียมผ่านเฟรมเวิร์กของ TestNG และ JUnit แต่รายงานขอบเขตยังคงเป็นตัวเลือกแรกของผู้ทดสอบระบบอัตโนมัติของซีลีเนียม รายงาน ขอบเขตในซีลีเนียม ให้ข้อมูลเชิงลึกมากขึ้นในการดำเนินการของสคริปต์การทำงานอัตโนมัติ ผลลัพธ์จะแสดงเป็นแผนภูมิวงกลมและโดยพื้นฐานแล้วเป็นเอกสาร HTML เป็นรายละเอียดเช่นสแน็ปช็อตและบันทึกที่กำหนดเองสามารถสร้างผ่านไลบรารี
หลังจากรันการทดสอบอัตโนมัติสำเร็จแล้ว ผู้ทดสอบจะต้องสร้างรายงานการดำเนินการทดสอบ TestNG มีรายงานเริ่มต้น แต่ไม่มีรายละเอียด ด้วยการบังคับใช้ ExtentReport API สามารถสร้างรายงานเชิงโต้ตอบผ่านการกำหนดค่าอย่างง่าย ไลบรารี่รองรับเฟรมเวิร์กของ Java และ .Net เช่น JUnit, NUnit และ TestNG เป็นต้น
ขึ้นอยู่กับ ขอบเขตรายงาน maven
แหล่งที่มา
รายงานระดับซีลีเนียมประกอบด้วยสองประเภท:
สารบัญ
1. คลาส ExtentReports
ผู้ทดสอบระบุเส้นทางและตามเส้นทางที่ระบุ รายงาน HTML จะถูกสร้างขึ้นจากคลาส ExtentReports มีการสร้างรายงานใหม่หรือเขียนทับรายงานที่มีอยู่ มีการตัดสินใจตามค่าบูลีน ค่าบูลีนเริ่มต้นคือ "จริง" ซึ่งหมายความว่าจะมีการเขียนทับข้อมูลทั้งหมดที่มีอยู่ในอดีต
2. คลาส ExtentTest
ขั้นตอนการทดสอบจะถูกบันทึกผ่านคลาส ExtentTest ไปยังรายงาน HTML ที่สร้างขึ้นโดยใช้วิธีการข้างต้น
3. ขอบเขต HtmlReporter
คลาสนี้สร้างไฟล์ HTML
ฟังก์ชันในตัวที่แสดงไว้สามารถใช้ได้กับคลาสที่แสดงด้านล่าง
- startTest: ดำเนินการตามเงื่อนไขเบื้องต้นของเคสในการทดสอบ
- endTest: มีการดำเนินการ postconditions ของเคสในการทดสอบ
- วิธีการบันทึก: สถานะของทุกขั้นตอนในการทดสอบจะถูกบันทึกลงในรายงาน HTML ที่สร้างขึ้นผ่านบันทึก
- ล้าง: มีการสร้างรายงานใหม่เพื่อลบข้อมูลในรายงานก่อนหน้า
ค่าต่อไปนี้ใช้เพื่อระบุสถานะของการทดสอบ: PASS, SKIP, FAIL และ INFO
วิธีสร้างรายงานขอบเขต
ข้อกำหนดเบื้องต้นบางประการสำหรับการสร้างรายงานขอบเขตคือ:
- การติดตั้งล่วงหน้าและการตั้งค่า Java
- การติดตั้ง TestNG.
- กำลังดาวน์โหลด Extent Report Jars (เวอร์ชัน 2.41.2)
- ความต้องการของextend-config.xmlที่อนุญาตให้กำหนดค่ารายงาน HTML
ขั้นตอนพื้นฐานที่ต้องปฏิบัติตามสำหรับการสร้างรายงานขอบเขตคือ:
- จะต้องสร้างโครงการทดสอบ
- ขอบเขตของไฟล์ jar รายงานจะถูกดาวน์โหลด
- ไฟล์ jar รายงานขอบเขตถูกเพิ่มลงในโปรเจ็กต์
- มีการสร้างคลาสที่นำไปใช้
ขั้นตอนในการสร้างรายงานขอบเขต
- สามารถสร้างรายงานขอบเขตได้ใน WebDriver ของซีลีเนียมผ่านการนำเข้าไฟล์ jar ซึ่งก็คือ extcreports-java-2.41.2.jar เนื้อหาไฟล์ jar จะถูกแตกเข้าไปในไดเร็กทอรีเมื่อดาวน์โหลดแล้ว
- ไฟล์ Jar ที่แยกจากไฟล์ ZIP ที่ดาวน์โหลดมาจะถูกเพิ่มในโปรเจ็กต์บิลด์ ใช้ตัวเลือก Build Path -> Configure Build Path
- คลาส Java ถูกสร้างขึ้นใหม่ตามขอบเขตที่รายงานผ่านโค้ดต่อไปนี้
แหล่งที่มา
คำอธิบายของรหัส
ด้วยเมธอด startTest การทดสอบจะเริ่มขึ้น ออบเจ็กต์ของรายงานขอบเขตเริ่มต้นขึ้น ออบเจ็กต์รายงานขอบเขตใช้เส้นทางที่ผู้ใช้กำหนดเป็นพารามิเตอร์ที่ส่งผ่านไปยังมัน
@beforeclass: การใช้รายงานขอบเขตนั้นแสดงให้เห็นโดยรหัส
@test: การดำเนินการต่อไปนี้เป็นไปโดยอัตโนมัติในคลาสนี้:
- การเปิดเบรา ว์ เซอร์ Chrome ผ่าน URL www.google.com
- ต้องตรวจสอบชื่อหน้าด้วยค่าตามที่คาดไว้เมื่อเปิดขึ้น
- สถานะของกรณีของการทดสอบจะถูกบันทึกเป็น PASS หรือ FAIL โดยใช้วิธีบันทึกรายงานขอบเขต
@afterclass: รหัสสำหรับการดำเนินการกรณีทดสอบ postconditions รวมอยู่ในคลาสนี้ รวมถึงรหัสสำหรับการสิ้นสุดการทดสอบหรือการล้างรายงาน หากไม่ใช้เมธอด flush() ระบบ จะไม่สร้าง รายงานขอบเขตในซีลีเนียม
จับภาพหน้าจอใน Extent Reports
1. ด้วยวิธีการจับ
- มีประโยชน์หลายประการในการใช้การจับภาพหน้าจอระหว่างการทดสอบ
- หากซอฟต์แวร์เริ่มทำงานผิดพลาด ผู้ทดสอบสามารถระบุปัญหาได้ผ่านการสังเกตจากภาพหน้าจอ
- ดังนั้น หากการดำเนินการทดสอบพบปัญหา การจับภาพหน้าจอจะช่วยให้ผู้ทดสอบสามารถดีบักสคริปต์ทดสอบได้
- ภาพหน้าจอควรถูกจับภาพเฉพาะในระหว่างการทดสอบที่ล้มเหลว เนื่องจากการบันทึกภาพจะใช้หน่วยความจำมากขึ้น
- รหัสต่อไปนี้ที่ใช้สำหรับจับภาพหน้าจอนำมาจาก
แหล่งที่มา
2. คำอธิบายของรหัส
- ซีลีเนียม WebDriver ปัจจุบันถูกจับเป็นภาพหน้าจอโดยใช้วิธีการ getScreenShotAs() จากนั้นจะถูกจัดเก็บในรูปแบบต่างๆ ของเอาต์พุต
ไฟล์ scrFile = ไดรเวอร์ ((TakesScreenshot)).getScreenshotAs(OutputType.File);
- อ็อบเจ็กต์ของไฟล์ถูกส่งกลับโดยใช้เมธอดของ getScreenShotAs และจัดเก็บไว้ในตัวแปรของไฟล์ ในการใช้วิธีนี้ จำเป็นต้องส่งอินสแตนซ์ของไดรเวอร์เว็บเพื่อถ่ายภาพหน้าจอ
File Dest = ไฟล์ใหม่ (“scr/../Errimages/” + System.currentTimeMillis()+ “.png”);
- โฟลเดอร์ชื่อ "ErrImages" จะถูกสร้างขึ้นภายในโฟลเดอร์ "src" โดยใช้โค้ดด้านบน ไฟล์ถูกบันทึกในโฟลเดอร์ที่สร้างขึ้นโดยใช้ชื่อไฟล์ตามเวลาของระบบปัจจุบัน
สตริง errflpath = ปลายทาง,getAbsolutePath();
Fileutils.copyFile (scrFile, Dest);
returnerrflpath;
- รูปภาพข้อผิดพลาดที่สร้างขึ้นจะถูกคัดลอกในโฟลเดอร์ปลายทาง
3. วิธีการเข้าสู่ระบบ
- วิธีการในตัวจะใช้ในวิธีการบันทึก addScreenCapture ของคลาส Extent ใช้เพื่อจับภาพหน้าจอแล้วผนวกกับรายงานขอบเขตที่สร้างขึ้น
test.log(LogStatus.Fail,test.addScreenCapture(capture(driver))+ “การทดสอบล้มเหลว”);
ข้อดีของรายงานขอบเขต
- การใช้รายงานขอบเขตเป็นเรื่องง่าย
- แผนภูมิวงกลมใช้สำหรับแสดงผล
- เปอร์เซ็นต์ของกรณีที่ผ่านการทดสอบมีให้
- ความสามารถในการเพิ่มรายละเอียดของสิ่งแวดล้อมในลักษณะที่เป็นธรรมชาติ
- เมื่อเทียบกับรายงานอื่นๆ รายงานขอบเขตมีข้อกำหนดของการปรับแต่งเอง
- สามารถสร้างรายงานเชิงโต้ตอบเพิ่มเติมผ่านขอบเขต API รายงานแบบโต้ตอบอาจอยู่ในรูปแบบของมุมมองแบบกราฟิก การจับภาพหน้าจอในทุกขั้นตอนการทดสอบ มุมมองแดชบอร์ด และรายงานที่สามารถส่งอีเมลได้
- สามารถทำงานร่วมกับเฟรมเวิร์ก JUnit, TestNG และ NUnit ได้
- การดำเนินการทดสอบแบบขนานเป็นไปได้ด้วยการสร้างรายงานเดียวสำหรับการรันแบบขนานทั้งหมด
- สามารถกำหนดค่ารายงานได้
- สำหรับการดำเนินการของทุกกรณีทดสอบ เวลาที่ใช้จะปรากฏขึ้น
- สามารถติดตามการทำงานของกรณีทดสอบหลายกรณีได้อย่างง่ายดายในชุดเดียว
- จากรายงานผลการทดสอบ สามารถกรองผลลัพธ์ได้ นอกจากนี้ ผลลัพธ์แบบขั้นตอนสามารถกรองออกได้โดยใช้ตัวเลือก ผ่าน/ไม่ผ่าน/ข้อมูล
- การจัดหมวดหมู่รายงานมีไว้สำหรับหมวดหมู่ เช่น การถดถอย/การทำงาน ฯลฯ
- บันทึกของขั้นตอนการทดสอบสามารถเพิ่มลงในรายงานได้
ตัวอย่าง รายงาน E xtent ในซีลีเนียม
มีการแสดงตัวอย่างเพื่อให้คุณเข้าใจกระบวนการสร้าง ขอบเขตการรายงาน
ขั้นตอนที่ 1 : จะต้องสร้างโปรเจ็กต์ maven และคลาส BasicExtentReport.java ด้วยการเพิ่มโค้ดที่นี่
- ไฟล์ HTML แบบสแตนด์อโลนถูกสร้างขึ้นจากคลาส 'ExtentHtmlReporter'
- คลาสนี้ยอมรับ 'ExtentHtmlReporter(java.io.File)' และพาธ 'ExtentHtmlReporter(java.lang.String filePath)'
- เส้นทางของไฟล์ถูกส่งผ่านไปเพื่อบันทึกรายงาน
- เมธอด config() ของคลาส 'ExtentHtmlReporter' อนุญาตตัวเลือกต่างๆ สำหรับการกำหนดค่า ไอเท็มสามารถเปลี่ยนแปลงได้โดยใช้โค้ดเพื่อเปลี่ยนแปลงรูปลักษณ์ของรายงานขอบเขต รวมถึงการประทับเวลา ชื่อรายงาน ฯลฯ
- 'AfterMethod' จะรายงานสถานะสำหรับแต่ละขั้นตอนของการทดสอบ และด้วยเหตุนี้สถานะของการทดสอบจึงได้รับการอัปเดต เช่น ผ่าน ล้มเหลว ข้าม ฯลฯ เมื่อมีข้อผิดพลาดเกิดขึ้น ข้อความจะถูกสร้างขึ้นเพื่อให้ข้อมูล ทำได้ผ่าน 'result.getThrowable()'
- ป้ายกำกับของสถานะถูกสร้างขึ้นโดยใช้คลาส MarkupHelper ซึ่งกำหนดสีให้กับสถานะรายงานด้วย
ขั้นตอนที่ 2: การส่งผ่านระบบปฏิบัติการและพารามิเตอร์ของเบราว์เซอร์ทำได้โดยการสร้างไฟล์ testng.xml รหัสมีอยู่ในเว็บไซต์ดังกล่าว
ขั้นที่ 3: เพิ่มรหัสอื่นลงในไฟล์ pom.cml
ขั้นที่ 4: การรัน โปรแกรมจะสร้าง รายงาน ผลลัพธ์
แหล่งที่มา
สำหรับการดูรายงานความล้มเหลว การทดสอบที่ล้มเหลวจะถูกคลิก ซึ่งจะแสดงสถานะการทดสอบพร้อมกับสาเหตุของความล้มเหลวในการทดสอบ
บางสิ่งเพิ่มเติมที่เกี่ยวข้องกับรายงานขอบเขตคือ:
- ธีมที่มีอยู่ในรายงานสามารถเปลี่ยนแปลงได้เพื่อรูปลักษณ์
- ตามความสะดวกของผู้ใช้ มุมมองแดชบอร์ดอาจถูกซ่อนหรือแสดง
- ในกรณีของการทดสอบหลายรายการ สามารถค้นหากรณีทดสอบได้ในลักษณะทีละขั้นตอน
- เวลาทั้งหมดที่ใช้ในการทดสอบรวมทั้งเวลาเริ่มต้นและเวลาสิ้นสุดจะแสดงให้ผู้ใช้เห็น
- มีตัวกรองเพิ่มเติมในรายงาน ผลลัพธ์สามารถกรองตามสถานะของการทดสอบได้ เช่น การทดสอบที่ผ่าน การทดสอบที่ล้มเหลว หรือกรณีทดสอบที่มีเพียงข้อมูลเท่านั้น
เรียนรู้ หลักสูตรซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
สำหรับการสร้างรายงานที่ปรับแต่งได้ รายงาน ขอบเขต เป็นวิธีที่ดีที่สุด เนื่องจากเป็นไลบรารีโอเพนซอร์ซที่กำหนดค่าได้ง่ายด้วยซีลีเนียม รายงานขอบเขตจึงกลายเป็นตัวเลือกที่ดีที่สุดสำหรับผู้ทดสอบระบบอัตโนมัติทั้งหมด บทความกล่าวถึงรายงานขอบเขตสั้น ๆ วิธีสร้างรายงาน และประโยชน์ของรายงานโดยสังเขป ผลประโยชน์สามารถเก็บเกี่ยวได้จากความรู้เกี่ยวกับการเขียนโปรแกรมซอฟต์แวร์ซึ่งเป็นพื้นฐานของการสร้างรายงานขอบเขต
หากคุณยินดีที่จะเรียนรู้และสำรวจประโยชน์ของการเขียนโปรแกรมซอฟต์แวร์ ให้ตรวจสอบหลักสูตร Executive PG Program in Software Development – Specialization in Full Stack Development ที่นำเสนอโดย upGrad หลักสูตรนี้เป็นหลักสูตรที่ออกแบบมาเป็นพิเศษสำหรับมืออาชีพระดับเริ่มต้นภายในกลุ่มอายุ 21 ถึง 45 ปี การให้แพลตฟอร์มสำหรับการบรรยายออนไลน์และเซสชันแบบโต้ตอบด้วยประสบการณ์จริง หลักสูตรนี้ให้การรับประกันตำแหน่งในอุตสาหกรรมชั้นนำ ทีมงานของเราพร้อมสำหรับการสอบถามใด ๆ
ตัวสร้างรายงานซีลีเนียมคืออะไร?
Selenium Report Builder หรือ Selenium IDE เป็นปลั๊กอิน Firefox สำหรับ Selenium ซึ่งช่วยในการสร้างและแก้ไขกรณีทดสอบ Selenium ทำให้กระบวนการทำงานอัตโนมัติมีประสิทธิภาพมากขึ้นและลดความพยายามในการสร้างรายงานต่างๆ เป็นวิธีที่สะดวกสบายในการทำการทดสอบและให้ภาพรวมของสถานะปัจจุบัน สร้างรายงานในรูปแบบต่างๆ เช่น ข้อความ, PDF, CSV, HTML เป็นต้น
สิ่งที่สามารถทดสอบได้โดยอัตโนมัติโดยใช้ซีลีเนียม
ซีลีเนียมเป็นเครื่องมือสำหรับทำให้เว็บแอปพลิเคชันอัตโนมัติเพื่อวัตถุประสงค์ในการทดสอบ และสามารถใช้สำหรับการทดสอบการถดถอย ซีลีเนียมสามารถทำให้ทุกอย่างที่ผู้ใช้ทำในเบราว์เซอร์เป็นไปโดยอัตโนมัติ เว็บไซต์ส่วนใหญ่มีฟังก์ชันบางอย่างที่ช่วยให้พนักงานทำงานต่างๆ ได้ง่ายขึ้น เช่น การสั่งซื้อสินค้าคงคลัง ดำเนินการตามคำสั่ง อัปเดตเว็บไซต์ ฯลฯ สามารถใช้ซีลีเนียมเพื่อทดสอบแอปพลิเคชันบนเว็บและเว็บไซต์ได้ เป็นภาษาระดับสูงที่รองรับภาษาโปรแกรมต่างๆ เช่น JAVA และ C# ซีลีเนียมใช้เพื่อทำให้เบราว์เซอร์ทำงานอัตโนมัติและให้นักพัฒนาเว็บแอปพลิเคชันมีความสามารถในการเขียนการทดสอบอัตโนมัติเพื่อใช้งานกับเว็บแอปพลิเคชัน
Selenium Grid คืออะไร?
Selenium Grid เป็นเครื่องมือที่ช่วยให้เรียกใช้การทดสอบอัตโนมัติในเบราว์เซอร์ต่างๆ (หรือโหนดกริดอื่นๆ) อนุญาตให้ดำเนินการทดสอบเหล่านี้พร้อมกันด้วยการกำหนดค่าต่างๆ (ตำแหน่ง เบราว์เซอร์ ระบบปฏิบัติการ) และเบราว์เซอร์หลายตัวพร้อมกัน การทดสอบสามารถทำได้ในโหมด headless โดยไม่ต้องใช้ GUI ใดๆ เลย Grid นำเสนอการดำเนินการงานแบบอะซิงโครนัสและสามารถจัดการงานได้หลายร้อยงานพร้อมกัน กริดซีลีเนียมจึงเป็นโมเดลดุมล้อและซี่ล้อสำหรับการรันเคสทดสอบ Grid อนุญาตให้ผู้ใช้รวมเบราว์เซอร์หลายตัวเพื่อเรียกใช้กรณีทดสอบเดียว เมื่อตั้งค่าแล้ว สามารถใช้เพื่อเรียกใช้การทดสอบในเครื่องหลายเครื่องหรือเบราว์เซอร์ตามต้องการหรือตามกำหนดเวลา Selenium Grid สามารถใช้ในการขนานการดำเนินการทดสอบ การทดสอบมาตราส่วน และเพิ่มความครอบคลุมการทดสอบ