作者:帅哥不潮_460 | 来源:互联网 | 2023-05-19 00:10
附httprunner中文使用文档地址:https:cn.httprunner.org一、框架介绍1、HttpRunner是一款面向HTTP(S)协议的通用测试框架,只需编写维护
附httprunner中文使用文档地址:https://cn.httprunner.org/
一、框架介绍
1、HttpRunner
是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON
脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
2、Locust
Locust是一款易于使用的分布式用户负载测试工具。它用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。HttpRunner 通过复用Locust ,可以在无需对 YAML/JSON 进行任何修改的情况下,直接运行性能测试。
二、环境安装
1、安装python,推荐python3.4+(python安装不做介绍)
2、安装httprunner
(1)进入cmd窗口,输入以下命令
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwMjQzOTU0Mi0zODQ1MDg0NS5wbmc=)
在 HttpRunner 安装成功后,系统中会新增如下 5 个命令:
- httprunner: 核心命令
- ate: 曾经用过的命令(当时框架名称为 ApiTestEngine),功能与 httprunner 完全相同
- hrun: httprunner 的缩写,功能与 httprunner 完全相同
- locusts: 基于 Locust 实现性能测试
- har2case: 辅助工具,可将标准通用的 HAR 格式(HTTP Archive)转换为
YAML/JSON
格式的测试用例
(2)检查是否安装成功
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwMzIwMzk3MS01NzE2MzM1NDgucG5n)
三、小试牛刀(httprunner)
1、测试用例的生成
(1)利用fiddler/charles对接口数据进行抓包,将结果导出为XX.har文件
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwMzkwNzMyMS0xMjEwNzA1Mzg0LnBuZw==)
选择导出格式
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNDA0Njk4NS02NjUzODg5MDQucG5n)
(2)将导出的XX.har文件转化为json文件/yaml文件
转化为json文件:har2case 文件路径
转化为yaml文件:har2case 文件路径 -2y
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNDQxMjA5NC03MTg4MDIwNzIucG5n)
转化成功后的yaml文件如下:
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNDYwMTkzMC0yMTEzODY4ODcxLnBuZw==)
2、新建项目(此处演示是将项目放置D盘)
(1)进入D盘
(2)输入命令:hrun --startproject 项目名称
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNTAxODIwOS02MzgxNTU5Ni5wbmc=)
项目目录如下:
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNTExMjQ0OC0xNjQyMDI0OTAzLnBuZw==)
3、将上面转化好的XX.har文件放置在项目文件夹testcases中
4、运行用例
(1)运行单个用例
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNTQxMTQ5Ny0yMDgyMzU0NDQxLnBuZw==)
(2)运行多个用例
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNTQzNDc4MS03NjU0OTkwNzQucG5n)
5、查看报告
在项目文件夹report中,生成了html格式的测试报告
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNTYyMDY5OS0xNzQ3ODI3MjQ4LnBuZw==)
6、常见问题
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODEwNTgyNzE1MC0yNzQ0OTQ1MzIucG5n)
四、安装locust
1、安装命令:pip install locustio
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMDAyNTk1NC0yNDU5MDgzMTYucG5n)
2、查看是否安装成功
运行命令:locusts -V
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMDEyMzExMi02MzI4MTY0NTMucG5n)
3、查看使用帮助文档
运行命令:locusts -h
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMDE0OTQ5NS01Mjc2NDE3NzIucG5n)
4、运行用例
运行命令:locusts -f 文件路径 --processes
(在 Locust 中需使用多核处理器的能力,--processes
参数,可以一次性启动 1 个 master 和多个 salve。若在 --processes
参数后没有指定具体的数值,则启动的 slave 个数与机器的 CPU 核数相同。)
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMDgzNjIzOC0xNTg5NDgzNjQ4LnBuZw==)
5、用例运行完成后,在浏览器中输入地址 http://localhost:8089/,可查看到locust页面。
分别输入并发数和每秒产生的用户数,点击【开始】即可。
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMTIyMzAxMi04NzEyNDM1NjgucG5n)
6、查看性能测试报告
(1)请求统计
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMTY1MDg3OS0xMjAzNzUwNjU5LnBuZw==)
(2)每秒完成的请求数(RPS)
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMTYzMDYxNy01NDk3NjAzNy5wbmc=)
(3)响应时间
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMTczODcyNy0xODcyNzgzMzc2LnBuZw==)
(4)不同时间的虚拟用户数
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMTgxNTIyMi0yMDg1ODkzNjAxLnBuZw==)
7、参数说明
![](https://www.#.com/go/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTc0MzQyMy8yMDE5MDcvMTc0MzQyMy0yMDE5MDcxODExMTg1ODM3OS0xMjU5NTEwOTIucG5n)
over!!!