最近在社群聊天里,发现了一款适用于http协议的接口框架——HttpRunner。在对其有个大致了解后,我觉得这款框架优点多多,整合了接口测试中所配套用到的多种框架。通过优秀的封装,将case整合到一份yaml或者json文件里即可运行,我觉得可以学习一下。
目前官方最新版本为3.x的版本了,所以打算以这个版本为学习样本。开篇就先对HttpRunner来一个介绍吧。
一、介绍
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
二、框架设计理念
- 充分复用优秀的开源项目,不追求重复造轮子,而是将强大的轮子组装成战车
- 遵循 约定大于配置 的准则,在框架功能中融入自动化测试最佳工程实践
- 追求投入产出比,一份投入即可实现多种测试需求
三、核心特点
- 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
- 以YAML或JSON格式定义testcase,使用pytest运行,更加简洁优雅
- 有了pytest,成百上千的插件随时可用
- 支持variables/extract/validate/hooks机制来创建极其复杂的测试场景
- 借助辅助函数(debugtalk.py),任何函数都可以在测试用例的任何部分中使用
- 支持完善的测试用例分层机制,充分实现测试用例的复用
- 使用python的第三方库jmespath,让提取和验证json响应更简单
- 基于 HAR 实现接口录制和用例生成功能(har2case)
- 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
- 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
- 集成了Allure,让测试报告更加漂亮,内容更丰富。
- 极强的可扩展性,轻松实现二次开发和 Web 平台化
相信做过接口自动化的你,看到上述的优点,都会感慨这个框架的强大。
不过这里我也是抱着怀疑的态度去学习,HttpRunner整合的资源确实很丰富,但是用起来真正感受如何呢?让我们拭目以待!