什么叫数据驱动?
登录用例 -》不用的用户名登录,但是自动化化脚本一样,虽然脚本相同,步骤相同,但是不同的用户名登录得出的数据是不一样的,于是就有了数据驱动,就是数据的改变驱动自动化测试的执行导致测试结果的不同。 ->这个就是数据驱动,数据的改变从而驱动自动化测试的执行,可以理解为参数化的应用。
unitest的数据驱动 和 pytest的数据驱动:
- unitest单元测试,无自带的数据驱动
- pytest的数据驱动: parameterized做参数化
第一:ddt
由于unittest单元测试框架,无自带的数据驱动,如果在做数据参数化时,脚本一样,只有数据不一样,再重新编写一样的测试用例,未免会加大代码的重复量和运行时间,所以可以引入ddt做数据驱动
一个简单的数据驱动测试:
为了创建数据驱动测试,需要在测试类上使用@ddt装饰符,在测试方法上使用@data装饰符。@data装饰符把参数当作测试数据,参数可以是单个值、列表、元组、字典。对于列表,需要用@unpack装饰符把元组和列表解析成多个参数。
单个参数:@data(1,2,3)代表我们传入的参数,每次传入一个值,所以会传入三次
多个参数:元组、字典,需要@data + @ unpack 一起使用
第二:pytest 的数据驱动:parameterized做参数化
- 需要注意的是:参数化里的传入的名称要和传入到函数的名称保持一致(如图中:绿色框住的两个地方)
- pytest的数据驱动与ddt相比,比较方便和简洁,直接parametrize(不分单个参数还是多个参数)
参考:https://blog.csdn.net/wushuai150831/article/details/78453549