其他分享
首页 > 其他分享> > 软件测试实验 - Junit5 参数化测试

软件测试实验 - Junit5 参数化测试

作者:互联网

一. 实验题目

  1. 构建系统导航主页面,可以分别跳转到三角形问题和佣金问题的页面;
  2. 针对三角形问题、佣金问题分别构建相应的Web页面;
  3. 采用Selenium+JUnit5实现对佣金计算页面的自动化测试(利用强健壮等价类的参数化测试)

二. 实验方法

Selenium+JUnit5自动化测试

三. 实验内容

1. 构建前端显示页面

所有源码均在文末贴出

(1). 导航页

负责跳转到三角形问题和佣金问题

image

(2). 三角形问题页面

包含应该跳转链接和四个输入框, 以及一个按钮
问题的实现代码使用html内嵌js代码实现

image

界面预览:

image

(3). 佣金问题页面

同三角形问题页面

image

界面预览:

image

2. 创建佣金问题强健壮等价类测试用例

(1). 等价类划分:

image

(2). 生成笛卡尔积:

image

(3). 根据笛卡尔积写出对应的测试用例

image

3. 创建web项目使用Selenium进行自动化测试

(1). Selenium的安装, chrome浏览器驱动,以及示例

请自行参考老师的讲义
点此下载, 不定期删除

image

(2). 使用Selenium录制测试脚本并导出

由于页面比较简单, 可以直接手写, 故省略.

(3). Junit5 参数化测试

导入jar包

image

编写测试代码

public class Class05Test {
  static WebDriver driver;

  @BeforeAll
  static void setUp() {
    System.setProperty("webdriver.chrome.driver",
            "D:\\Work Space\\IdeaProjects\\SoftTest\\Class_05\\src\\main\\resources\\chromedriver.exe");
    driver = new ChromeDriver();
    driver.manage().window().maximize();
  }

  @AfterAll
  static void tearDown() {
    driver.quit();
  }

  @ParameterizedTest
  @CsvFileSource(resources = "/cases.csv")
  public void class05(int locks, int stocks,int barrels, String expected) {
    driver.get("http://localhost:8080/");
    driver.findElement(By.id("commission")).click();
    driver.findElement(By.id("a")).sendKeys(locks+"");
    driver.findElement(By.id("b")).sendKeys(stocks+"");
    driver.findElement(By.id("c")).sendKeys(barrels+"");
    driver.findElement(By.id("action")).click();
    String result = driver.findElement(By.id("result")).getAttribute("value");
    Assertions.assertEquals(expected, result);
  }
}

创建参数化测试文件

image

运行测试, chrome会自动打开, 然后自动填充参数进行测试:

image

测试结果如下, 全部通过:

image

四. 源码

标签:软件测试,driver,findElement,测试,Selenium,Junit5,id,页面
来源: https://www.cnblogs.com/kaixin-wbl/p/16106025.html