HttpRunner简介:
HttpRunner 是一款面向HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
作者李隆之前是大疆的测试开发工程师,项目起源于大疆内部的测试需求,之后转为开源项目。
HttpRunner运行环境:
1、HttpRunner 是一个基于Python 开发的测试框架,可以运行在macOS、Linux、Windows 系统平台上。
2、Python 版本:HttpRunner 支持Python 3.4 及以上的所有版本,并使用Travis-CI 进行了持续集成测试,测试覆盖的版本包括2.7/3.4/3.5/3.6/3.7。虽然HttpRunner 暂时保留了对Python 2.7 的兼容支持,但强烈建议使用Python 3.4 及以上版本。
3、操作系统:推荐使用macOS/Linux。
HttpRunner设计理念:
- 充分复用优秀的开源项目,不追求重复造轮子,而是将强大的轮子组装成战车
- 遵循 约定大于配置 的准则
- 在框架功能中融入自动化测试最佳工程实践
- 追求投入产出比,一份投入即可实现多种测试需求
HttpRunner核心特性:
继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求;
采用 YAML/JSON 的形式描述测试场景,保障测试用例描述的统一性和可维护性
借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑
支持完善的测试用例分层机制,充分实现测试用例的复用
测试前后支持完善的 hook 机制
响应结果支持丰富的校验机制
基于HAR 实现接口录制和用例生成功能(har2case)
结合 Locust 框架,无需额外的工作即可实现分布式性能测试
执行方式采用 CLI 调用,可与Jenkins 等持续集成工具完美结合
测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
极强的可扩展性,轻松实现二次开发和Web 平台化
在HttpRunner 自动化测试项目中,主要存在如下几类文件:
YAML/JSON(必须):测试用例文件,一个文件对应一条测试用例
debugtalk.py(可选):脚本函数,存储项目中逻辑运算函数
该文件存在时,将作为项目根目录定位标记,其所在目录即被视为项目工程的根目录(当前工作目录CWD)
该文件不存在时,运行测试的路径将被视为当前工作目录CWD
测试用例文件中的相对路径(例如.csv)均需基于当前工作目录CWD
运行测试后,测试报告文件夹(reports)会生成在当前工作目录CWD
.env(可选):存储项目环境变量
.csv(可选):项目数据文件,用于进行数据驱动
reports(自动生成):运行后自动生成,无需创建