压测凝气-启动性能测试

1、什么是压测

通过模拟高并发请求或极端负载条件,对应用程序接口(API)进行性能测试的过程。其核心目标是评估API在高压环境下的稳定性、响应速度、资源消耗及错误处理能力,确保其在真实场景中能够满足预期的性能要求。

2、Httprunner 如何进行压测

以httprunner 脚手架项目为例:
直接运行 **hrp boom demo.json --spawn-count 100 --spawn-rate 10 **

其中 spawn-count:表示我们期望达到的最大并发用户数 spawn-rate:表示达到期望最大并发前每秒增加的并发用户数

在该示例中,我们指定了 1000 并发用户,按照每秒 100 个的速率初始化用户,预计在 10s 后可完成初始化。
在这种模式下,性能测试不会自动结束(除非指定循环次数或者压测时长);当我们期望结束压测时,可以通过 kill 命令杀死进程,或者 Ctrl+C 来结束性能测试,结束时终端会打印整体测试数据。

启动后 ,hrp 每隔 3s 会打印一次性能数据,其中汇总了 3s 内的所有请求情况。结果样式如下
image

指标名称 指标说明
Users 当前虚拟用户数
State HttpRunner当前运行状态
Total RPS 总RPS
Total Response 总响应时间
Total Fail Ratio 总请求错误率
Accumulated Transactions 事务总通过/失败数,包含Action事务
TYPE 请求类型
NAME 请求名称
REQUESTS 请求数
FAILS 请求失败数
MEDIAN 响应时间中位数
AVERAGE 响应时间平均值
MIN 响应时间最小值
MAX 响应时间最大值
CONTENT SIZE 响应内容大小
REQS/SEC 每秒请求数
FAILS/SEC 每秒请求失败数

3、拓展

设置 RateLimiter
有时我们需要在性能测试时对发压流量进行限流,例如期望限制最大的 RPS,或者在初始化并发用户时限定增加数率。这就需要使用到 --max-rps 和 --request-increase-rate。

max-rps:限制 hrp 发压的最大 rps,默认不限制
request-increase-rate:限制 hrp 每秒的请求增加速率,默认不开启,支持两种格式:“1”、“1/1s”
具体示例如下所示:

$ hrp boom testcase.yml --spawn-count 100 --spawn-rate 100 --max-rps 1000 --request-increase-rate 100
在该示例中,我们指定了 100 并发用户,按照每秒 100 个的速率初始化用户,预计在 1s 后可完成初始化。同时,我们限制在整个压测过程中,hrp 最高只能发压 1000 RPS,同时限定每秒增加的速率为 100 RPS。

设置循环次数
除了手动控制压测时长外,HttpRunner v4.0 还支持按照指定的循环次数执行压测,可通过 --loop-count 参数进行指定。

需要说明的是,HttpRunner v4.0 执行循环次数的逻辑参考的是 JMeter,所有虚拟用户均会运行指定的循环次数,即当次压测的整体运行次数为:spawn-count * loop-count。

执行如下命令,执行完指定循环次数后,HttpRunner 将结束运行并打印整体测试数据。

$ hrp boom testcase.yml --spawn-count 100 --spawn-rate 10 --loop-count 1000
在该示例中,我们指定了 100 个并发用户,每个用户循序运行 1000 次,预计总共运行 100*1000=10w 次。

posted @   Takiyo  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示