python接口自动化解决方案
技术方案:pytest + requests + pymysql + xlrd + PyYaml + allure
重点内容解释
- ExcelReader类:
读取excel内容,读取后数据使用json.loads()转化为python对象流出,不能转化的仍为str流出
此时,要求excel内容必须符合json格式,除非必要,也可以不是。 - ExcelData类:
根据用例ID获取用例数据,返回的是一条数据,也可以是多条数据,数据为ExcelReader流入,原格式流出 - CaseObj类:
ExcelData类获取的数据,封装到CaseObj对象,目的是方便后续根据对象.属性
取单个数据 - Correlation类:
主要用作正则替换,替换前的数据及参数先进行转化,最终替换后再转化为dict,不能转化的将还是str流出
目的:方便后续写用例的时候,无需考虑参数转化的问题
现在就可以愉快的写用例了:
# 添加商品到购物车
@pytest.mark.skipif
def test_add_car(self):
case = self.caseobj.get_case_dtos("case_id")
headers = Correlation.res_sub(case.headers, self.token)
r = Request().post(url=self.pre_url + case.url, json=case.params, headers=headers)
AssertUtil().assert_in_body(r["body"]["message"], "OK")