Selenium 简明教程

Selenium - JUnit Report

Junit 可用于创建详细的自动化测试报告。它是一个开源框架,可以与 Selenium 测试集成并用于报告目的。

Prerequisites to Create JUnit Report

  1. 从链接 Java Downloads 在系统中安装 Java(高于 8 的版本)。要获取有关安装 Java 的更多详细信息,请参阅链接 Java Environment Setup

  2. 从链接 Apache Maven 在系统中安装 Maven。要获取有关设置 Maven 的更多详细信息,请参阅链接 Maven Environment Setup

  3. 从链接 IntelliJ IDEA Ultimate 安装 IntelliJ。要获取有关设置 IntelliJ 的更多详细信息,请参阅链接 Selenium IntelliJ

Steps to Create JUnit Report

Step 1 − 创建一个 Maven 项目并将适当的依赖项添加到 pom.xml 文件中,用于以下项 −

  1. 从链接 Selenium Java 中添加 Selenium Java 依赖项。

  2. 从链接 JUnit 添加 JUnit 依赖项。

  3. 从链接 JUnit Jupiter API 添加 JUnit Jupiter 依赖项。

  4. 从链接 Apache Maven Site Plugin 添加 Maven site 依赖项。

  5. 从链接中添加 Maven Surefire 报告依赖 Maven Surefire Report Plugin

  6. 使用所有依赖项保存 pom.xml 并更新 Maven 项目。

Step 2 −使用以下示例的实现创建 JUnit 测试类,其中我们将首先单击 New User button 验证 Welcome Page 上的文本 Welcome, Login In

selenium junit report 1

点击 New User 按钮后,我们将导航到注册页面,其中 Back to Login 按钮如以下图像中突出所示。

selenium junit report 2

Code Implementation

package Report;

import org.junit.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.TestMethodOrder;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertEquals;

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class JunitTest {

   WebDriver driver;

   @Before
   public void setup() throws Exception{

      // Initiate browser driver
      driver = new ChromeDriver();

      // adding implicit wait of 20 secs
      driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

      // Opening the webpage
      driver.get("https://www.tutorialspoint.com/selenium/practice/login.php");
   }

   @Test
   @Order(1)
   public void verifyLoginAndRegisterPage() {

      // identify header then get text
      WebElement header = driver.findElement
         (By.xpath("//*[@id='signInForm']/h1"));
      String text = header.getText();

      // assertions to test case to check login page
      assertEquals("Welcome, Login In", text);

      // navigate to register page
      WebElement btn = driver.findElement
         (By.xpath("//*[@id='signInForm']/div[3]/a"));
      btn.click();

      // assertions added to test case to check register page
      WebElement btnchk = driver.findElement
         (By.xpath("//*[@id='signupForm']/div[5]/a"));
      boolean displayed = btnchk.isDisplayed();

      // assertions to test case
      assertEquals(true, displayed);
   }

   @After
   public void teardown() {

      // quitting browser
      driver.quit();
   }
}

pom.xml 文件中的依赖项。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>
   <groupId>org.example</groupId>
   <artifactId>SeleniumJava</artifactId>
   <version>1.0-SNAPSHOT</version>

   <properties>
      <maven.compiler.source>16</maven.compiler.source>
      <maven.compiler.target>16</maven.compiler.target>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>

   <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
   <dependencies>
      <dependency>
         <groupId>org.seleniumhq.selenium</groupId>
         <artifactId>selenium-java</artifactId>
         <version>4.11.0</version>
      </dependency>

      <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
      <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter-api</artifactId>
         <version>5.10.2</version>
      </dependency>

      <!-- https://mvnrepository.com/artifact/junit/junit -->
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.13.2</version>
         <scope>test</scope>
      </dependency>

      <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-site-plugin -->
      <dependency>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-site-plugin</artifactId>
         <version>4.0.0-M13</version>
      </dependency>
   </dependencies>

   <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-report-plugin -->
   <reporting>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
            <version>3.2.5</version>
         </plugin>
      </plugins>
   </reporting>
</project>

Step 3 −使用以下命令从命令行运行测试: mvn clean test suite

Step 4 −刷新项目,名为 site 的新文件夹应在 target 文件夹内生成。

selenium junit report 3

Step 5 −右键单击 surefire-report.html 并选择在浏览器中打开的选项。

selenium junit report 4
  • JUnit* 报告将在浏览器中打开,显示包含总共 1 个测试方法的摘要,通过成功率为 100%。它还显示了包列表(包的名称、测试的数量、通过数、失败数、通过成功率、测试持续时间等)的详细信息。此外,测试方法名称 verifyLoginAndRegisterPage 也包含在报告中。

Conclusion

这就总结了我们对 Selenium JUnit 报告教程的综合讲解。我们从描述 JUnit 报告、设置 JUnit 报告的先决条件开始,并逐步通过一个示例介绍如何使用 JUnit 报告以及与 Selenium 结合使用来说明如何创建 JUnit 报告。这将使您对 JUnit 具备深入了解。明智的做法是继续练习您所学的知识,并探索与 Selenium 相关的其他知识,以加深您的理解并拓宽您的视野。