• 4.Pytest执行Yaml格式测试用例


    Yaml格式

    YAML是专门用来写配置文件的语言,格式要比json方便

    python中有个叫PyYaml的模块是专门针对Yaml文件操作的

    Yaml格式:

    • 大小写敏感
    • 使用缩进表示层级关系,缩进不允许使用Tab键,只允许空格
    • 同级别的只要左对齐即可
    • #是注释键
    • 执行时最好加上Loader=yaml.FullLoader  
    import yaml
    
    yamldir = './test_Yaml.yaml'
    #创建文件对象
    fo = open(yamldir,'r',encoding='utf-8')
    res = yaml.load(fo,Loader=yaml.FullLoader)
    print(res)
     
     

     yaml文件格式:

    #注释
    #字典数据   输出的结果是{'name=': 'Tom', 'password': 12346}
    #name: Tom  #账号,冒号后面一定要加空格
    #password: 12346  #密码
    
    #数组(列表) 输出的结果是['hello', 100]
    #- hello
    #- 100
    
    #组合关系:列表里有个字典 ,输出的结果是:[{'name': 'bobo', 'age': 20}, {'sex': '男', 'tall': 188}]
    #-
    #  name: bobo
    #  age: 20
    #
    #-
    #  sex: 男
    #  tall: 188
    
    #列表里有字典,字典里又有列表 输出结果:[{'name': 'bobo', 'age': [10, 20], 'school': ['gaoansc', 'nanchangsc']}]
    #-
    #  name: bobo
    #  age:
    #    - 10
    #    - 20
    #  school:
    #    - gaoansc
    #    - nanchangsc
    
    #注意:如果有特殊符号,值要加引号,单引号原样输出,双引号,转义输出
    
    #引用和取值   &设定值,*取值  输出结果:{'name': 'bob', 'age': 'bob'}
    
    name: &name bob
    age: *name
    
    # ---  是分段符号
    
    name2: &name2 bob
    age2: *name2

    写好yaml文件后,在py文件中执行

    import yaml
    
    yamldir = './test_Yaml.yaml'
    # #创建文件对象
    # fo = open(yamldir,'r',encoding='utf-8')
    # # res = yaml.load(fo,Loader=yaml.FullLoader)
    # # print(res)
    #
    #
    # #两组数据情况
    # res = yaml.load_all(fo,Loader=yaml.FullLoader)
    # print(res)
    # for one in res:
    #     print(one)
    
    #yaml写的操作w
    #yaml写的操作w
    fo = open(yamldir, 'w', encoding='utf-8')
    data2 = {'name': 'bobo', 'age': 'bobo'}
    yaml.dump(data2,fo)
    #多个列表
    fo = open(yamldir, 'w', encoding='utf-8')
    data2 = {'name': 'bobo', 'age': 'bobo'}
    data3 = {'name3': 'bobo3', 'age3': 'bobo3'}
    yaml.dump_all([data2,data3],fo)
    # 用完要关闭文件

    fo.close()

     

    示例:

    首先是在yaml文件中写好用例数据,配置数据

    然后在lib目录下写好取入参数据的方法 ,进行封装

     

    测试用例导入取接口入参数据的方法之后,直接传入接口,如下:

     

     

  • 相关阅读:
    两道关于算法的面试题
    MySQL连接数过多程序报错"too many connections"
    Mysql中类似于Oracle中connect by ... start with的查询语句(木大看懂)
    获取当前div中的文本(只获取当前div的, 子元素不要, 基于layui)
    同一张地区表中根据汉字查询地区的代码
    HttpURLConnection getInputStream异常的解决
    IDEA报错No Spring WebApplicationInitializer types detected on classpath
    mybatis出现无效的列类型
    hibernate NUMBER 精度
    jmeter汉化或英化
  • 原文地址:https://www.cnblogs.com/zhaobobo001/p/13992895.html
Copyright © 2020-2023  润新知