统一使用json格式数据,将数据存放在 jsondatas 目录中
创建测试数据
jsondatas/useraction/register.json
[{"bodydata": {"loginName": "17088889999","password": "123456"},"expect": {"resultCode":500,"message":"用户名已存在!","data":null}},{"bodydata": {"loginName": "","password": "123456"},"expect": {"resultCode":510,"message":"登录名不能为空","data":null}},{"bodydata": {"loginName": "13211123333","password": ""},"expect": {"resultCode":510,"message":"密码不能为空","data":null}},{"bodydata": {"loginName": "","password": ""},"expect": {"resultCode":510,"message":"密码不能为空","data":null}}]
封装处理json文件
utils/filehandler.py
"""处理json文件"""import osimport jsonjsondir = os.path.join(os.path.dirname(os.path.dirname(__file__)),"jsondatas")def parse_json(filepath):"""默认从jsondatas 目录中读取文件。传的文件路经useraction/register.json:param filepath::return:"""jsonpath = os.path.join(jsondir,filepath)print(jsonpath)with open(jsonpath,encoding='utf8') as file:testdata = json.load(file)return testdataif __name__ == '__main__':data = parse_json(r'useraction\register.json')print(data)
创建测试用例
在测试用例中,通过读取json文件中的数据进行对应的测试。
testcases/test_ddt/test_user_actions.py
"""用户操作相关"""import pytestfrom utils.myrequests import MyRequestsfrom utils.filehandler import parse_jsonmyreq = MyRequests()testdata = parse_json('useraction/register.json')class TestUserActions:@pytest.mark.parametrize("data",testdata)def test_register(self,data):"""测试注册功能:return:"""url = "/api/v1/user/register"bodydata = data["bodydata"]r = myreq.do_requests(method='post', url=url, json=bodydata)print(r.json())assert r.json() == data["expect"] # 使用数据驱动中的断言
执行
pytest -s -v testcases\test_ddt\test_user_actions.py

