1. 程式人生 > 其它 >Pytest中引數化之Yaml檔案實戰

Pytest中引數化之Yaml檔案實戰

login.yaml檔案

'''
        ---
        #成功登入
        "url": "http://8.135.9.42:8001/oa/sys/user/v1/loginByPwd"
        "body": '{
                  "token": "",
                  "mobile": "13500000000",
                  "pwd": "cs123456"
                 }'
        "response": '{"code": "1000"}'

        ---
        #使用者名稱為空
        "url": "http://8.135.9.42:8001/oa/sys/user/v1/loginByPwd"
        "body": '{
                  "token": "",
                  "mobile": "",
                  "pwd": "cs123456"
                }'
        "response": '{"code": "1001"}'

        ---
        #密碼為空
        "url": "http://8.135.9.42:8001/oa/sys/user/v1/loginByPwd"
        "body": '{
                  "token": "",
                  "mobile": "13500000000",
                  "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))
        # 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 json庫的操作
            json.dumps() 將python物件編碼成Json字串
            json.loads() 將Json字串解碼成python物件
            json.dump()  將python中的物件轉化成json儲存到檔案中
            json.load()  將檔案中的json的格式轉化成python物件提取出來
        2 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...')