软件测试 | parametrize 实现参数化
参数化用例
参数化用例可以帮我们更好的管理测试用例,将测试数据与测试用例分离,好的测试框架是允许对测试 用例实现参数化功能。尤其是接口自动化测试,接口里有大量参数,不同参数又有多种组合方式,参数 化在接口测试中起到非常重要的作用。
使用 parametrize 实现参数化
使用 @pytest.mark.paramtrize(data,param) 装饰测试方法,其中 data 是自定义的参数名, param 是引入的参数列表。
运行结果:
整个执行过程中,pytest 将参数列表 [("3+5",8),("2+5",7),("7*5",35)] 中的三组数据取出来,每 组数据生成一条测试用例。
多次使用 parametrize
同一个测试用例还可以同时添加多个 @pytest.mark.parametrize 装饰器, 多个 parametrize 的所有 元素互相组合(类似笛卡儿乘积),生成大量测试用例。
场景:
比如登录场景,用户名输入情况有 n 种,密码的输入情况有 m 种,验证所有情况的用户名和密码,就 会涉及到 n*m 种组合的测试用例,如果把这些数据一一的列出来,工作量也是非常大的。pytest 提供了 一种参数化的方式,将多组测试数据自动组合,生成大量的测试用例。示例代码如下:
运行结果:
分析如上运行结果,测试方法 test_foo( ) 添加了两个 @pytest.mark.parametrize() 装饰器,两个装 饰器分别提供两个参数值的列表, 2 * 3 = 6 种组合,pytest 便会生成 6 条测试用例。在测试中通常 使用这种方法使参数自由组合,可以实现全面的测试。
搜索微信公众号:TestingSudio 霍格沃兹的干货都很硬核
评论