接口自动化测试框架 - 5-4 Pytest 数据参数化

Pytest 数据参数化

  • 应用场景

    登录功能都是输入用户名,输入密码,点击登录。但登录的用户名和密码如果想测试多个值是没有办法用普通的操作实现的。数据参数化可以帮我实现这样的效果。

  • 方法名

    • pytest.mark.parametrize

      # 数据参数化
      # 参数:
      # argnames:参数名
      # argvalues:参数对应值,类型必须为可迭代类型,一般使用list
      @pytest.mark.parametrize(argnames, argvalues, indirect=False, ids=None, scope=None)
      

1. 一个参数使用方式

  1. argnames 为字符串类型,根据需求决定何时的参数名
  2. argvalues 为列表类型,根据需求决定列表元素中的内容
  3. 在测试脚本中,参数,名字与 argnames 保持一致
  4. 在测试脚本中正常使用
  • 示例

    import pytest
    class TestLogin:
    		@pytest.mark.parametrize("name", ["xiaoming", "xiaohong"])
    		def test_a(self, name):
    			print(name)
    			assert 1
    
  • 结果

    scripts/test_login.py xiaoming
    .xiaohong
    .
    

2. 多个参数使用方式

  • 示例

    import pytest
    class TestLogin:
    		@pytest.mark.parametrize(("username", "password"), [("zhangsan", "zhangsan123"),
    															("xiaoming", "xiaoming123")])
    		def test_a(self, username, password):
    				print(username)
    				print(password)
    				assert 1
    
  • 结果

    scripts/test_login.py zhangsan
    zhangsan123
    .xiaoming
    xiaoming123
    .
    

    多个参数还可以将装饰器写成 @pytest.mark.parametrize(“username,password”, [(“zhangsan”,

    “zhangsan123”), (“xiaoming”, “xiaoming123”)]) 效果是一样的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值