python unittest框架参数化学习

liftword3个月前 (03-17)技术文章17

参数化

有些测试用例会考虑正向、逆向、边界、极端等情况,一个测试方法上会有多种不同的参数,使用参数化可以实现参数数据和脚本分离,可以管理大量参数数据,循环执行测试用例,提高代码复用率。

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 进行安装

实战

测试用例代码如下图所示:

相关文章

Python 函数参数

1.函数基本参数#基本样例 函数参数的定义要和调用参数匹配,否则会报错 def fun01(a, b): print(a, b) if __name__ == '__main__':...

Python基础 - 函数的位置参数、关键字参数、默认参数

在 Python 中,调用函数可以按照函数的位置传递参数(位置参数),也可以按照参数的名称传递参数(关键字参数),函数的参数还可以在定义的时候指定默认值(默认参数)。此外,Python 还支持可变参数...

Python命令行参数解析模块argparse

前言以前 optparse 比较火,但是在python2.7版本后,官方不再维护这个模块,转而大力支持 argparse 。argparse 模块可以让人轻松编写用户友好的命令行接口。她可以从 sys...

python函数参数详解

python有两种传参的方式,位置参数和关键字参数位置参数位置参数是基于它们的位置或顺序传递给函数的参数。这些参数是必需的,并且必须按照与函数参数列表匹配的正确顺序提供。以下是一个示例:def gre...

如何在运行 Python 脚本文件时传递参数

在 Python 中,可以使用命令行参数为程序传递额外的信息。在操作系统的命令行运行 Python 脚本文件时,文件名称之后添加的参数称为命令行参数。可以根据需要使用这些命令行参数,比如根据不同的参数...

Python教程(25)——Python中参数类型详解

当我们在编写函数时,会定义一些占位符,这些占位符就是参数,参数是函数定义中用于接收外部传递值的占位符,这个会帮助我们在函数被调用时接收外部传递的值。在Python当中,有各种各样类型的参数,主要有位置...