在类前或用例前用pytest.mark.parametrize ,可进行参数化

传参方式比较灵活,有很多种,下面是列出的几种方式,其他的可自行研究

@pytest.mark.parametrize("参数名",列表)

源码:

:param argnames:
A comma-separated string denoting one or more argument names, or
a list/tuple of argument strings. :param argvalues:
The list of argvalues determines how often a test is invoked with
different argument values. If only one argname was specified argvalues is a list of values.
If N argnames were specified, argvalues must be a list of
N-tuples, where each tuple-element specifies a value for its
respective argname.

翻译:

参数名:字符串的形式存在一个或多个参数,用逗号分隔 , 或者用参数字符串的列表或元组

  参数:如果是一个,则用list;

如果多个,参数必须以列表中元组的形式,每一个元组对应一组参数值

  • 单个参数:

         只传单个参数的值即可

    @pytest.mark.parametrize("a",["test123456","test2222"])
def test_a(self,a):
print(a)

运行结果:

  • 多个参数

      以元组的形式传入多个参数的值,一个元组代表一组参数的值

例如:第一组a=1,b=2

第二组a=3,b=4

    @pytest.mark.parametrize("a,b",[(1,2),(3,4)])
def test_two_param(self,a,b):
print(a+b)

运行结果:

参数名以列表的传入

    @pytest.mark.parametrize(["a","b","c"],[(1,2,3),(3,4,7)])
def test_list(self,a,b,c):
assert a+b == c
print(a+b)

  运行结果:

单个多次传入多个参数,排列组合传入

    a = (1,2,3)
b = (4,5)
@pytest.mark.parametrize("test_a",a)
@pytest.mark.parametrize("test_b",b)
def test_2_param(self,test_a,test_b):
print(test_a*test_b)

  运行结果

  •  json格式传入参数

调用时,在名称后面加.items()读取内容

    data1 = {
"test1":"test1",
"test2":"test2"
}
@pytest.mark.parametrize("test",data1.items())
def test_json(self,test):
print(test)

  运行结果

最新文章

  1. (jms)ActiveMQ 安装配置.
  2. ProgressBar
  3. AngularJS结合RequireJS做文件合并压缩的那些坑
  4. c#简要概括面向对象的三大特征
  5. LightSpeed 相关问题处理
  6. 利用EXCEL表实现网页数据采集到MYSQL数据库
  7. python中列表和字典常用方法和函数
  8. 理解ros服务和参数 ---- 7
  9. IP配置
  10. C# 编译JS -Evaluator
  11. iOS Instruments内存检测使用
  12. HINSTANCE数据类型
  13. 【转】Hibernate和ibatis的比较
  14. C++学习笔记(十二):重载函数
  15. MFC单选按钮
  16. (5)修改Linux的基本配置
  17. Excel批量修改文件
  18. JMeter学习(十一)WebSerivice测试计划(转载)
  19. 【转】微信开发-NATAPP的使用
  20. R语言学习笔记 (入门知识)

热门文章

  1. 注册接口(数字字典和api接口)
  2. 浅浅的聊一下 WebSocket
  3. Java的jinfo命令使用详解
  4. ASP.NET Core 6.0对热重载的支持
  5. Golang 常见设计模式之装饰模式
  6. asp.net多语言网站的完整解决方案
  7. Debian11系统安装
  8. 运营商的三大数据域——B域,O域,M域
  9. python连接mongodb数据库
  10. Java基础(补充)