Pytest中引數化之Yaml檔案實戰
阿新 • • 發佈:2021-08-11
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...')'''