本文为博主原创,未经许可严禁转载。
本文链接:https://blog.csdn.net/zyooooxie/article/details/113543817
接口自动化测试框架的 category,有兴趣,可以看看。
个人博客:https://blog.csdn.net/zyooooxie
需求
要将接口实际的返回值 和 expected data 做断言,如何来做呢?
assert_fun
@staticmethod
def assert_fun(dy, res):
Log.info('处理后的断言:{}'.format(dy))
res_json = res.json()
res_json_str = str(res_json)
if isinstance(dy, str):
assert res_json_str.find(dy) != -1
elif isinstance(dy, dict):
for k, v in dy.items():
Log.info('k:v 实际 {}:{}'.format(k, v))
result = jsonpath.jsonpath(res_json, '$..'+k)[0]
assert result == v
elif isinstance(dy, int):
assert res.status_code == dy
else:
raise Exception('处理后的断言 不合法')
sql_assert_fun
@staticmethod
def sql_assert_fun(dy, sql, res, db, cur):
try:
cur.execute(sql)
data = cur.fetchall()
Log.info('数据库执行sql的结果:{}'.format(data))
except Exception as e:
db.rollback()
raise Exception('数据库 查询失败:{}'.format(e))
Log.info('excel 期待响应的结果:{}'.format(dy))
assert float(data[0][0]) == float(dy)
res_text = res.text
Log.info('请求实际响应的结果:{}'.format(res_text))
assert res_text.find(str(data[0][0])) != -1
这部分代码:
- excel 无sql语句,断言,走assert_fun();
- excel 有sql语句,走sql_assert_fun();但实际有风险,只断言响应中 有此str;故而 增加一条用例。
这篇就主要这些内容;该系列第五篇 接口自动化框架之 测试用例
交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie