HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
主要特征
继承的所有强大功能requests ,只需以人工方式获得乐趣即可处理HTTP(S)。
以YAML或JSON格式定义测试用例,pytest 以简洁优雅的方式运行。
在HAR 支持下记录并生成测试用例。
支持variables/ extract/ validate/hooks机制,以创建非常复杂的测试方案。
使用debugtalk.py插件,任何功能都可以在测试用例的任何部分使用。
使用jmespath ,提取和验证json响应从未如此简单。
有了pytest ,数百个插件随时可用。
使用allure ,测试报告可以非常强大。
通过重复使用locust ,您可以进行性能测试,而无需进行额外的工作。
支持CLI命令,与CI/CD完美结合。
目前httprunner最新的版本为4版本,比较常用的还有2版本和3版本。
版本对比
为什么选择httprunner?
目前接口自动化测试的工具,有几种
基于postman+newman/jmeter的接口自动化,适用于代码能力弱的测试同学,不需要写代码,只用将接口组织起来并写好断言,即可实现。缺点是不太灵活,也不方便维护。
有代码类的如python+requests+unittest/pytest+allure,基于java的有Java+Maven+TestNG+HttpClient+Jenkins,一般为各个公司自己封装的框架优点是比较灵活,想实现什么逻辑可以自己封装。缺点是对代码要求比较高,维护起来比较困难。
基于关键字的接口自动化测试框架,如RF,对于代码的要求低,需要了解关键字,但是RF运行起来比较慢。
httprunner是基于python语言封装的框架,支持仅维护一份yaml文件/json文件,即可实现接口自动化测试。功能封装的都比较完整,不需要从头写框架,即可快速在公司进行接口自动化测试项目的落地。
为什么选择3版本?
2版本不支持pytest,无法使用pytest的插件,也不支持allure。
4版本基于go语言比较庞大,加上最近一直在用3版本,所以接下来会介绍基于3版本如何实现接口自动化。