HttpRunner

HttpRunner简介

HttpRunner 是一个支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议的开源的通用测试框架,涵盖接口测试、性能测试、数字体验监测等测试类型。用户通过编写YAML或JSON文档即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求,该API 测试工具简单易用,功能强大,具有丰富的插件化机制和高度的可扩展能力。

HttpRunner官方文档链接

HttpRunner的特征:

  • 支持与 HAR/Postman/Swagger/Curl/JMeter 等工具对接,可使用 HAR/Postman/Swagger/curl 等生成测试用例,轻松实现用例生成和转换
  • 测试用例支持 YAML/JSON/go test/pytest 格式,可通过录制的方式快速生成用例,上手简单,使用方便,并且支持格式互相转换
  • 支持灵活的自定义函数和 hook 机制,参数变量、数据驱动、结果断言等机制一应俱全,轻松适应各种复杂场景

HttpRunner框架优点:

  • 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求

  • 编写YAML或JSON格式的testcase,转译成pytestcase来运行测试

  • 使用变量/提取/验证/钩子机制,创建case和复用case

  • 重写pytest,可以利用pytest的各种插件

  • 使用allure项目生成功能丰富的报告

  • 使用jmespath,提取和验证json响应变得前所未有的简单。

  • 基于 HAR 实现接口录制和用例生成功能(har2case)

HttpRunner框架运行原理:

在这里插入图片描述

HttpRunner 会把json、yml格式的case转换成pytest用例,再使用重写的类来执行测试

HttpRunner版本对比

目前HttpRunner 已经进入到 v4.x 版本了,使用率较广的版本是HttpRunner2.x和HttpRunner3.x,每一个大版本实现思路和命令上都具有显著的差异

版本v1v2v3HttpRunner+v4
发布时间2018.03.072019.01.012020.03.102021.11.182022.05.01
开发语言PythonPythonPythonGolangGolang + Python
网络协议HTTP(S)/1.1HTTP(S)/1.1HTTP(S)/1.1HTTP(S)/1.1多协议 HTTP(S)/HTTP2/WebSocket/TCP/RPC
脚本格式类型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 2.7/3.3+Python 2.7/3.5+Python 3.7+ pytest无需依赖Go 引擎无需依赖 pytest 引擎依赖 Python 3.7+

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

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
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值