zoukankan      html  css  js  c++  java
  • Pytest中参数化之Yaml文件实战

    login.yaml文件

    '''
            ---
            #成功登录
            "url": "http://******/loginByPwd"
            "body": '{
                      "token": "",
                      "mobile": "******",
                      "pwd": "******"
                     }'
            "response": '{"code": "1000"}'
    
            ---
            #用户名为空
            "url": "http://******/loginByPwd"
            "body": '{
                      "token": "",
                      "mobile": "",
                      "pwd": "******"
                    }'
            "response": '{"code": "1001"}'
    
            ---
            #密码为空
            "url": "http://******/loginByPwd"
            "body": '{
                      "token": "",
                      "mobile": "******",
                      "pwd": ""
                    }'
            "response": '{"code": "1001"}'
    
            #yaml文件编写,冒号后面一定要加一个空格,记住了...
    '''

    yaml_read.py文件

    '''
            import yaml
    
            def read_yaml():
                with open('login.yaml', 'r', encoding='utf-8') as f:
                    return list(yaml.safe_load_all(f))
    # print(yaml.safe_load_all(f)) # <generator object load_all at 0x0000011E57B9F510>返回的是一个内存地址
            # yaml文件学习博客:https://blog.csdn.net/weixin_38256474/article/details/85395196
    # yaml方法学习:https://www.jb51.net/article/184636.htm
    # print(read_yaml())
    # for item in read_yaml():
    # print(item)

    '''

    test_yaml_login.py

    '''
            import pytest
            import requests
            import json
            from pytest_study.yaml_read import *
    
            @pytest.mark.parametrize('data', read_yaml())
            def test_yaml_login_001(data):
                r = requests.post(url=data['url'], data=json.loads(data['body'])) # data['body']是字符串类型
                assert r.json()['code']==json.loads(data['response'])['code'] # data['response']是字符串类型
    
            if __name__ == '__main__':
                pytest.main(['-s', '-v', 'test_yaml_login.py'])
    
            """
            1 yaml库的操作
                yaml.safe_dump()        将一个python值转换为yaml格式文件
                yaml.safe_load()        将yaml格式文件转换为python值
                yaml.safe_dump_all()    将一序列的python值转换为yaml格式文件
                yaml.safe_load_all()    将yaml格式文件转换为python值
            """
    '''
    while True: print('studying...')
  • 相关阅读:
    你敢说自己了解单例模式?
    关于线程池,那些你还不知道的事
    Dubbo透传traceId/logid的一种思路
    当BeanUtils遇到泛型
    Oval框架如何校验枚举类型的一种思路
    HttpClient(4.5.x)正确的使用姿势
    HttpClient官方sample代码的深入分析(连接池)
    Jaxb如何优雅的处理CData
    JAXB性能优化
    Jaxb对xml报文头的小修小改
  • 原文地址:https://www.cnblogs.com/xuewei95/p/15129759.html
Copyright © 2011-2022 走看看