pytest接口自动化测试框架 | 单个/多个参数

Posted COCOgsta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest接口自动化测试框架 | 单个/多个参数相关的知识,希望对你有一定的参考价值。

视频来源:B站《冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频【软件测试】》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:pytest接口自动化测试框架 | 汇总_COCOgsta的博客-CSDN博客


函数数据参数化

方便测试函数对测试数据的获取。

方法:

parametrize(argnames, argvalues, indirect=False, ids=None, scope=None)

常用参数:

argname:参数名

  • argvalues:参数对应值,类型必须为list
    • 当参数为一个时格式:[value]
    • 当参数个数大于一个时,格式为:[(param_value1, param_value2, ...), (param_value1, param_value2, ...)]

使用方法:

@pytest.mark.parametrize(argnames, argvalues)

参数值为N个,测试方法就会运行N次

单参数

import pytest

# a参数被赋予2个值,函数会运行2遍
@pytest.mark.parametrize("a", ['aaa', 'bbb'])
# 参数必须和parametrize里面的参数一致
def test_01(a):
    print('\\n' + a)

if __name__ == '__main__':
    pytest.main(['-s', 'test_single_param.py'])

多参数

import pytest

# a参数被赋予2个值,函数会运行2遍
@pytest.mark.parametrize("a,b", [('zz', '123456'), ('xz', '123456')])
# 参数必须和parametrize里面的参数一致
def test_01(a, b):
    print('\\n' + a)
    print('\\n' + b)

if __name__ == '__main__':
    pytest.main(['-s', 'test_multi_param.py'])

以上是关于pytest接口自动化测试框架 | 单个/多个参数的主要内容,如果未能解决你的问题,请参考以下文章

pytest接口自动化测试框架 | pytest参数化

pytest接口自动化测试框架 | 使用多个fixture

自动化接口测试-PyTest自动化测试框架

pytest文档73-pytest+yaml实现接口自动化框架之用例参数关联

pytest接口自动化测试框架 | 使用函数返回值的形式传入参数值

pytest接口自动化测试框架 | fixture之params参数化