zoukankan      html  css  js  c++  java
  • 【pytest学习】使用yaml实现用例数据参数化

    一、单个参数列表

    # 单参列表形式等价于

    # @pytest.mark.parametrize('name',['name1','name2'])

    @pytest.mark.parametrize('name',yaml.safe_load(open("./data.yml", encoding='utf-8'))['test_login0'])

    二、元组形式的参数

    # 相当于

    # @pytest.mark.parametrize(('name','password'),[('name4','password4'),('name5','password5')])

    @pytest.mark.parametrize(('name','password'),yaml.safe_load(open("./data.yml", encoding='utf-8'))['test_login1'])

    三、字典形式的参数

    # @pytest.mark.parametrize('dict1',[{'name':'name7','password':'password7'},{'name':'name8','password':'password8'}])

    # 这时就需要抓字典的key来实现参数化

    @pytest.mark.parametrize('dict1',yaml.safe_load(open("./data.yml", encoding='utf-8'))['test_login1'])

    值获取:

    name=dict1['name']

    password=dict1['password']

    四、data.yml文件内容

    #['name1','name2','name3'] 单参列表方式
    test_login0 :
    - 'name1'
    - 'name2'
    - 'name3'
    #[('name4','password4'),('name5','password5'),('name6','password6')]多参列表套元组
    test_login1 :
    -
    - 'name4'
    - 'password4'
    -
    - 'name5'
    - 'password5'
    -
    - 'name6'
    - 'password6'
    #[{'name7':'password7'},{'name8':'password8'},{'name9':'password9'}]
    test_login2 :
    -
    name : 'name7'
    password : 'password7'
    -
    name : 'name8'
    password : 'password8'
    -
    name : 'name9'
    password : 'password9'

     

  • 相关阅读:
    Creat-React-Native-App 之StackNavigator之踩坑记录
    [转]JavaScript构造函数及原型对象
    js技巧之与或运算符 || && 妙用
    iOS 开发中的小技巧
    钥匙串中所有证书都失效的解决方法
    提高app性能
    jspatch
    谓词
    Xcode 添加 模版-
    IOS-Jenkins 自动打包
  • 原文地址:https://www.cnblogs.com/ricebug2/p/14028673.html
Copyright © 2011-2022 走看看