แตงกวา - รายงาน

เราทำการทดสอบเพื่อให้เข้าใจถึงความเสถียรของผลิตภัณฑ์ดังนั้นไม่ว่าจะเป็นการทดสอบด้วยตนเองหรือการทดสอบอัตโนมัติสิ่งสำคัญอย่างยิ่งที่จะต้องสร้างรายงานที่กระชับซึ่งสามารถสื่อถึงความเสถียรของผลิตภัณฑ์ได้ ดังนั้นในขณะที่เรากำลังสร้างสถานการณ์ทดสอบโดยอัตโนมัติกับแตงกวาสิ่งสำคัญคือต้องรู้ว่าเราจะสร้างรายงานการทดสอบแตงกวาได้ดีเพียงใด อย่างที่เราทราบกันดีว่า Cucumber เป็นกรอบงาน BDD แต่ไม่มีกลไกการรายงานที่สวยงาม

เพื่อให้บรรลุเป้าหมายนี้เราจำเป็นต้องรวม Cucumber เข้ากับเครื่องมือโอเพ่นซอร์สอื่น ๆ เช่น Ant / Junit ในที่นี้เราจะนำตัวอย่างของ JUnit เพิ่มเติมเนื่องจากมีการรองรับภาษา Java

มาดูรายละเอียดของรูปแบบรายงานต่างๆกันซึ่งพร้อมใช้งานและใช้งานง่าย -

รูปแบบสวย (รายงาน HTML)

Pretty Format สร้างรายงานการทดสอบแตงกวาในรูปแบบ HTML นั่นคือไฟล์ HTML เป็นรูปแบบรายงานที่น่าอ่านมากที่สุด มันสร้างรายงานในลักษณะเดียวกับที่เป็นไฟล์ฟีเจอร์ดังนั้นการติดตามจึงทำได้ง่ายเช่นกัน นอกจากนี้คุณสามารถระบุตำแหน่งที่คุณต้องการวางรายงานนี้หลังจากการดำเนินการทดสอบ มันสามารถ -

  • Local Directory - เราสามารถระบุไดเร็กทอรีเป้าหมายสำหรับรายงานเป็นไดเร็กทอรีโลคัลของเครื่องที่การทดสอบจะทำงาน

  • Server Directory- นอกจากนี้เรายังมีข้อกำหนดในการระบุไดเร็กทอรีเป้าหมายเป็นไดเร็กทอรีใด ๆ บนเซิร์ฟเวอร์ซึ่งสามารถเข้าถึงได้โดยสาธารณะ โดยทั่วไปจะช่วยได้เมื่อเราต้องการให้ลูกค้า / ผู้มีส่วนได้ส่วนเสียดูผลการทดสอบ ณ เวลาใดเวลาหนึ่ง

ตัวอย่าง

มาดูตัวอย่างรูปแบบที่สวยงามโดยอัตโนมัติ

Step 1 - สร้างโครงการ Maven ชื่อ cucumberReport ใน Eclipse

Step 2 - สร้างแพ็คเกจชื่อ CucumberReport ภายใต้ src/test/java

Step 3 - สร้างไฟล์คุณสมบัติชื่อ cucumberReport.feature

เขียนข้อความต่อไปนี้ภายในไฟล์และบันทึก

Feature - รายงานแตงกวา

# นี่คือการตรวจสอบผลการทดสอบ Pass test case

Scenario: มีฟังก์ชันการเข้าสู่ระบบ

เมื่อฉันได้เปิดเบราว์เซอร์

เมื่อเปิดเว็บไซต์ Facebook

จากนั้นปุ่มเข้าสู่ระบบควรมีอยู่

# นี่คือการตรวจสอบผลการทดสอบสำหรับกรณีทดสอบที่ล้มเหลว

Scenario: ลืมรหัสผ่านอยู่

ให้ฉันเปิดเบราว์เซอร์

เมื่อเปิดเว็บไซต์ Facebook

จากนั้นลิงก์ลืมรหัสผ่านควรมีอยู่

Note- นี่คือสถานการณ์แรกจะผ่านไปในขณะที่สถานการณ์ที่สองจะล้มเหลว เพื่อให้เราได้เห็นว่ารายงานผ่านและรายงานล้มเหลวมีลักษณะอย่างไร

Step 4 - สร้างไฟล์นิยามขั้นตอน

  • เลือกและคลิกขวาที่โครงร่างแพ็คเกจ

  • คลิกที่ไฟล์ 'New'

  • ตั้งชื่อไฟล์เป็น cucumberReport.java

  • เขียนข้อความต่อไปนี้ภายในไฟล์และบันทึก

package CucumberReport;
 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class cucumberReport { 
   WebDriver driver = null; 
	
   @Given("^I have open the browser$") 
   public void openBrowser() { 
      driver = new FirefoxDriver();
   } 
	
   @When("^I open Facebook website$") 
   public void goToFacebook() { 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @Then("^Login button should exits$") 
   public void loginButton() { 
      if(driver.findElement(By.id("u_0_v")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else { 
         System.out.println("Test 1 Fail");
      }
   } 
	
   @Then("^Forgot password link should exist$") 
   public void forgotPWD() { 
      if(driver.findElement(By.id("")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else {
         System.out.println("Test 1 Fail");
      } 
   } 
}

Step 5 - สร้างไฟล์คลาสนักวิ่ง

  • สร้างคลาสนักวิ่งชื่อ runTest.java ภายในบรรจุภัณฑ์

  • เขียนรหัสต่อไปนี้ บันทึกไฟล์

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( 
   format = {"pretty", "html:target/Destination"} ) 
	
//Specifying pretty as a format option ensure that HTML report will be generated. 
//When we specify html:target/Destination - It will generate the HTML report 

inside the Destination folder, in the target folder of the maven project. 

public class runTest { }
  • ทำการทดสอบโดยใช้ตัวเลือก

    • เลือก runTest.java ไฟล์จาก package explorer

    • คลิกขวาและเลือกตัวเลือก Run as.

    • เลือก JUnit test

คุณจะสังเกตสิ่งต่อไปนี้เมื่อคุณเรียกใช้ไฟล์คลาสนี้

ทั้งสองสถานการณ์จะถูกดำเนินการทีละคน

โฟลเดอร์ชื่อ Destination จะถูกสร้างขึ้นภายในไดเร็กทอรีเป้าหมาย

รายงานจะมีชื่อว่า“ Index.html”

เปิด Index.html ด้วยเว็บเบราว์เซอร์

คุณจะเห็นรายงานที่กล่าวถึงในภาพต่อไปนี้ -

มันเน้นสีของสถานการณ์ที่ล้มเหลว นอกจากนี้คุณจะเห็นไฮไลต์สำหรับขั้นตอนที่ล้มเหลวในสถานการณ์นั้น ทำให้การดีบักทำได้ง่ายมาก

รายงาน JSON

ตอนนี้เราได้เห็นแล้วว่ารายงาน HTML นั้นง่ายเพียงใด อย่างไรก็ตามหากเราต้องการส่งต่อข้อมูลรายงานนี้ไปยังแอปพลิเคชันอื่น ๆ นั่นเป็นเรื่องยุ่งยากในกรณีของรายงาน HTML นี่คือความต้องการรูปแบบการรายงานอื่น สัญกรณ์ออบเจ็กต์สคริปต์ JSON-Java เป็นอีกรูปแบบหนึ่งสำหรับการสร้างรายงานการทดสอบ Cucumber JSON เป็นวัตถุที่มีข้อมูลจำนวนมากที่จัดเก็บในรูปแบบข้อความ รายงาน JSON นำค่าที่แตกต่างไปจากตาราง รายงาน JSON ยังสามารถใช้เป็นเพย์โหลดของข้อมูลที่จะถ่ายโอนระหว่างเซิร์ฟเวอร์ต่างๆ นอกจากนี้ยังสามารถใช้เพื่อแสดงเป็นหน้าเว็บ โดยสรุปแอปพลิเคชันอื่นสามารถใช้รายงาน JSON ได้

What is payload information?เมื่อข้อมูลถูกส่งผ่านอินเทอร์เน็ตแต่ละหน่วยที่ส่งจะมีทั้งข้อมูลส่วนหัวและข้อมูลจริงที่กำลังส่ง ส่วนหัวระบุต้นทางและปลายทางของแพ็กเก็ตในขณะที่ข้อมูลจริงเรียกว่าเพย์โหลด ในการสร้างรายงาน JSON เราต้องทำการเปลี่ยนแปลงในไฟล์นักวิ่ง

  • เปลี่ยนตัวเลือกรูปแบบในไฟล์นักวิ่งดังนี้

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( format={"json:target/Destination/cucumber.json"}) 

//When we specify json:target/Destination/cucumber.json - It will generate the JSON  
report inside the Destination folder, in the target folder of the maven project.

public class runTest {}
  • ทำการทดสอบโดยใช้ตัวเลือก -

    • เลือก runTest.java ไฟล์จาก package explorer

    • คลิกขวาและเลือกตัวเลือก Run as.

    • เลือก JUnit test

  • คุณจะสังเกตสิ่งต่อไปนี้เมื่อคุณเรียกใช้ไฟล์คลาสนี้

    • ทั้งสองสถานการณ์จะถูกดำเนินการทีละคน

  • รายงานจะมีชื่อเป็น cucumber.json (ตามที่ระบุไว้ในคลาสนักวิ่ง)

  • เปิด cucumber.json ไฟล์ด้วยโปรแกรมแก้ไขข้อความ

  • คุณจะเห็นรายงานที่กล่าวถึงในภาพหน้าจอต่อไปนี้หลังจากวางเส้นแบ่ง -

Note - JSON อ่านได้น้อยกว่าเมื่อเทียบกับรูปแบบรายงาน HTML