参数化
有些测试用例会考虑正向、逆向、边界、极端等情况,一个测试方法上会有多种不同的参数,使用参数化可以实现参数数据和脚本分离,可以管理大量参数数据,循环执行测试用例,提高代码复用率。
unittest框架本身不支持参数化,实现参数化需要配合第三方库实现。使用比较简单的就是ddt和paramterized。
ddt
ddt(Data Driven Testing)即数据驱动测试,ddt可以完美应用于unittest框架实现参数化,ddt通过装饰器的方式来调用,装饰器有类装饰器和函数装饰器两种。
安装
通过命令pip install ddt 进行安装,也可以在pycharm中安装,如下图所示:
实战
测试用例代码如下所示:
类装饰器@ddt表示类使用ddt
方法装饰器@data()传递参数,可以传递单个参数,参数数组,参数元组,参数字典等
方法装饰器@unpack用来拆分参数数据,可以拆分元组、列表、字典
方法装饰器@file_data("参数文件路径")用来导入外部参数文件,参数文件可以是josn文件和yaml文件,参数文件里的属性要和方法形参对应。如下图所示:
如果参数文件是txt文件,需要先读取txt文件,再使用@data装饰器填入参数,方法名前加*号,如下图所示:
parameterized
parameterized库的使用方法和ddt类似,不需要使用类装饰器,只使用方法装饰器@parameterized.expand就可以对参数进行参数化了。
安装
通过命令pip install parameterized 进行安装
实战
测试用例代码如下图所示:
领取专属 10元无门槛券
私享最新 技术干货