Spring Boot的测试框架(二)

2023-04-06 07:32:49 浏览数 (1)

端到端测试

端到端测试是指对应用程序的整个系统进行测试,从用户的角度出发,模拟用户使用系统的过程。Spring Boot提供了多种端到端测试工具,使得开发者可以轻松地编写端到端测试。

1. 添加测试依赖

首先需要在项目的pom.xml文件中添加测试依赖:

代码语言:javascript复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>com.codeborne</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>3.7.1</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
    <scope>test</scope>
</dependency>

这些依赖包含了Spring Boot Test、Spring MVC Test、Webdriver Manager和Selenium。

2. 编写测试类

创建一个名为MyTest的测试类:

代码语言:javascript复制
import io.github.bonigarcia.wdm.WebDriverManager;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.assertEquals;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class MyTest {

    private static WebDriver webDriver;

    @BeforeAll
    static void setup() {
        WebDriverManager.chromedriver().setup();
        webDriver = new ChromeDriver();
    }

    @AfterAll
    static void teardown() {
        webDriver.quit();
    }

    @Test
    void test() {
        webDriver.get("http://localhost:8080");
        webDriver.findElement(By.id("inputName")).sendKeys("John");
        webDriver.findElement(By.id("submitButton")).click();
        String message = webDriver.findElement(By.id("message")).getText();
        assertEquals("Hello, John!", message);
    }
}

这个测试类使用了Spring的@SpringBootTest注解来启动Spring应用程序上下文。在setup方法中,我们使用了Webdriver Manager来自动下载并设置ChromeDriver。在test方法中,我们使用了ChromeDriver来打开Web应用程序,并在输入框中输入名字并点击提交按钮。最后,我们使用assertEquals方法来断言返回的消息是否正确。

注意,在这个测试类中,我们需要在@SpringBootTest注解中设置webEnvironment属性为DEFINED_PORT,以便在测试期间使用与应用程序相同的端口启动应用程序。

0 人点赞