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值
        """
'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM