HttpRunner简介:
产生背景
- 同时支撑多个业务线的项目,要求较强的通用性
- 高速发展和扩张:业务增长、人员增长
- 普遍具有功能回归测试、性能测试、持续集成、线上监控、测试数据生成等需求
what
- 开源
- 面向HTTP(S)的通用测试框架
- 只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求(数据生成)
- 一站式接口测试解决方案(融合最佳测试方案,不只局限于HTTP(S),微服务)
- 项目地址
- GitHub仓库
- https://github.com/httprunner/httprunenr
- 用户文档:https://cn.httprunner.org/
- 备用地址:https://httprunner.debugtalk.com/
- 开发文档
- https://debugtalk.com/tags/HttpRunner/
- GitHub仓库
设计理念
- 充分复用优秀的开源项目,不追求重复造轮子,将强大的轮子组成战车
- 遵循 约定大于配置 的准则,在框架功能中融合自动化测试最佳工程实践
- 追求投入产出比,一份投入即可实现多中测试需求
设计思路
- 充分复用开源项目
- 借鉴优秀开源项目
- debugtalk.py------------pytest conftest.py
- 测试用例模板语言------------Jinja
- 参数化机制------------LoadRunner
- 环境变量管理------------POSTMAN
- 测试用例分层管理------------Katalor
- 借力行业标准
- 整合生态工具链
- 配置文件组织测试用例
- 一次投入,多处复用
基本使用
- 示例
- 环境准备
- Python环境
- 支持 2.7/3.5/3.6/3.7(推荐使用Python3.5及以上版本)
- 安装
- pip install httprunner
- hrun -v # 版本
- hrun -h # 帮助
- hrun --startproject demo # 脚手架
- httprunner startproject demo
- hrun -v
- 测试报告自动生成
- Python环境
实战
高级特性
HttpRunner框架用例优化
-
目录
-
环境变量
.env文件,在整个项目都可以调用 -
全局变量理解
api-login.yaml -
debugtalk.py文件
项目根目录
get_user_agent -
base_url与validate断言类型
域名和端口相同,path不同(url很长)
base_url:http://
自动查找base_url
写在debugtalk.py文件里 -
extract响应数据提取与接口依赖吹-测试步骤
-
三种参数化方式理解
-
平台化一个源