版本对比

HttpRunner 各版本的功能特性详细对比

HttpRunner 经过近 5 年的迭代,已经进入到 v4.0 版本了。

v4 与历史版本的对比

通过如下表格,可详细了解各个版本间的关键差异点。

版本v1v2v3HttpRunner+v4
发布时间2018.03.072019.01.012020.03.102021.11.182022.05.01
开发语言PythonPythonPythonGolangGolang + Python
版本号规范(semver)
网络协议HTTP(S)/1.1HTTP(S)/1.1HTTP(S)/1.1HTTP(S)/1.1多协议 HTTP(S)/HTTP2/WebSocket/TCP/RPC
脚本转换工具HARHARHARHARHAR/Postman/Swagger/Curl
工程脚⼿架
测试⽤例(集)格式v1v2v2v2v2
测试⽤例分层机制v1v2v2v2v2
脚本格式类型YAML/JSONYAML/JSONYAML/JSON/pytestYAML/JSONYAML/JSON/pytest/gotest
脚本格式校验jsonschemaTODO
脚本编写语法提示pytest 链式调用gotest 链式调用gotest 链式调用 + pytest 链式调用
脚本执行引擎Python unittestPython unittestPython pytestGo 自研Go 自研 + Python pytest
插件化语言(debugtalk.xx)PythonPythonPython多语言(Go/Python)多语言(Go/Python/Java/etc.
参数提取机制regex + 点分隔符jmespath + regex + 点分隔符jmespathjmespath + regexjmespath + regex
skip 机制TODO
接口测试报告html 自研(jinja2)html 自研(jinja2)pytest-html/allurehtml 自研(Go template)html 自研(Go template) + pytest-html/allure
性能测试引擎Python LocustPython LocustPython LocustGo BoomerGo Boomer
运行环境依赖Python 2.7/3.3+Python 2.7/3.5+Python 3.7+ pytest无需依赖Go 引擎无需依赖
pytest 引擎依赖 Python 3.7+
网络性能采集
安装部署方式pippippipcurl/wgetcurl/wget

注:v4 中 斜体 代表当前还未支持,但计划会实现。

从上面的表格可以看出,HttpRunner v4 颇有点金刚葫芦娃的意思,囊括了之前所有版本的功能,并且增加了很多新特性。

HttpRunner v4 = v2 + v3 + hrp + ...

在使用体验和用例格式兼容性方面,v4 也会与之前的 v2/v3/hrp 做到兼容,因此后续 HttpRunner 的维护工作都将转到 v4 版本,之前的版本将不再单独维护。

v4 版本的 Go & Python 功能对比

HttpRunner v4.0 同时采用了 Golang/Python 两种编程语言,底层会有两套相对独立的执行引擎,目标是兼具 Golang 的高性能和 pytest 的丰富生态。

关键差异点对比如下:

引擎GoPython
脚本类型YAML/JSON/gotestYAML/JSON/pytest
网络协议多协议 HTTP(S)/HTTP2/WebSocket/TCP/RPCHTTP(S)
脚手架工具hrp startproject/
用例生成工具hrp har2case/
脚本转换工具hrp convert/
插件化语言多语言(Go/Python/Java/etc.Python
运行环境依赖与插件语言相关,详见依赖环境说明Python 3.7+
脚本编写语法提示gotest 链式调用pytest 链式调用
运行接口测试hrp runhrp pytest
运行性能测试hrp boom/
网络性能采集hrp run –http-stat/
接口测试报告html 自研(Go template)pytest-html/allure