2024年4月15日发(作者:)

测试开发 | Junit5 + YAML 轻松实现参数化和数据驱动,让 App 自

动化测试更高效(二)

霍格沃兹测试学院2023-02-28 08:00发表于安徽

本文为霍格沃兹测试学院优秀学员课程学习笔记,想一起系统进阶的同学文末加群交流。

上篇文章提到了数据驱动可以在几个方面进行:

测试数据的数据驱动

测试步骤的数据驱动

定位符

行为流

断言的数据驱动

下面将详细解说如何进行数据驱动。

5. 数据驱动

5.1 测试数据的数据驱动

5.1.1 Junit5的 参数化

说到测试数据的数据驱动,就必然离不开测试框架的参数化,毕竟测试数据是传给用例的,用例

是由框架来管理的,这里以目前最推荐使用的Junit5框架为例,介绍参数化的使用

@ParameterizedTest+@ValueSource参数化

在Junit5中,提供了@ParameterizedTest注解来实现方法的参数化设置,另外@ValueSource

注解用来存放数据,写法如下:

1

2

3

4

5

@ParameterizedTest

@ValueSource(strings = { "racecar", "radar", "able was I ere I saw elba" })

void palindromes(String candidate) {

assertTrue(ndrome(candidate));

}

@ParameterizedTest+@CsvSource参数化

Junit5还提供了@CsvSource注解来实现csv格式的参数传递,写法如下:

1

2

3

4

5

6

7

8

9

10

@ParameterizedTest

@CsvSource({

"滴滴,滴滴出行",

"alibaba,阿里巴巴",

"sougou,搜狗"

})

public void searchStocks(String searchInfo,String exceptName) {

String name = earchInfo(searchInfo).getAll().get(0);

assertThat(name,equalTo(exceptName));

}

@ParameterizedTest+@CsvFileSourc数据驱动

最终,Junit5提供了@CsvFileSourc注解来实现csv数据格式的数据驱动,可以传递csv文件路

径来读取数据,写法如下:

csv数据文件:

1

2

3

pdd

xiaomi

pdd