基于 HttpRunner 3.1.4 二次开发。
- 新增
retry_on_failure()方法用于断言失败后重试; - 新增
skip_if()和skip_unless()方法根据条件决定是否跳过步骤; - 新增 Python 版本 JSONassert 断言方法
assert_json_contains()和assert_json_equal(); - Allure 报告现在可以显示接口请求、响应、断言详情了,且多个断言会在多个文件中展示;
- Allure 报告的请求中会显示真实的实际请求时间;
- 新增支持通过
with_headers(**{"X-Json-Control": "expand"})实现展开响应中嵌套 JSON 的功能; - 新增支持对变量中类似于 Python 属性和元素访问的表达式(如
${obj.attr[0]})的解析; - 新增对表达式
${pyexp()}和${pyexec()}的支持,表达式中可以包含任意的 Python 表达式,如${pyexp(a + b)}${pyexec(a.b = c)},其中a b c均为 HttpRunner 的变量; - 新增方法
with_origin()支持同一接口请求不同 origin; - 新增 pytest 命令行参数
--continue-on-failure支持断言失败后继续运行用例; - 新增
RunTestCase.call()调用其他用例时可以为导出变量设置别名的功能; - 新增
parametrize()方法支持对单一步骤参数化(想较于 pytest 对整个用例参数化); - 新增断言方法
assert_is_close()断言两个值的差值; - 新增断言方法
assert_match_pydantic_model()和assert_match_json_schema()支持对响应的数据结构做断言; - 新增断言方法
assert_lambda()支持添加任意自定义断言; - 新增断言方法
assert_each_equal()检查列表中每一个元素的值; - 新增断言方法
is_truthy_and_subset()和is_truthy_and_superset()支持对集合断言; with_jmespath()新增参数sub_extractor用于在提取结果上使用函数做二次提取;- 新增支持在 pyproject.toml 中通过设置
tool.httprunner.http-headers为每一个接口设置公共请求头的功能; - 新增
with_pre_delay()和with_post_delay()支持在请求前/后等待。
- 解决 HttpRunner 默认以
multipart/form形式上传文件导致无法使用 PUT 单独上传一个文件的问题。