วิธีสร้างรายงานขอบเขตในซีลีเนียม

เผยแพร่แล้ว: 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 สามารถใช้ในการขนานการดำเนินการทดสอบ การทดสอบมาตราส่วน และเพิ่มความครอบคลุมการทดสอบ