性能测试工具

Jmeter

RunnerGo

runnerGo
Apipost-TeamUpdated Jul 15, 2024
压测值
含义
计算方法
总请求数
总共发送送请求总数
并发数*轮次
执行时间
压测任务执行时间
任务结束时间-任务开始时间
成功请求数
http请求code为200的请求数量
失败请求数
http请求code非200或者连接异常请求数量
错误率
压测出错比例
失败次数/总请求数 * 1000
总接收数据
总结接收到数据总字节数
累加每次返回结果的字节数量
每秒请求数
每秒平均请求数量
请求总次数/请求总时间
每秒成功请求数
每秒平均成功请求数量
成功请求总次数/成功请求总时间
每秒接收字节数
每秒接收平均字节数
总接收字节数/总请求时间
最大响应时间
最大请求执行时间
所有请求中执行最长的时间
最小响应时间
最小请求执行时间
所有请求中执行最小的时间
平均响应时间
平均响应时间
请求总时间/请求总次数
10%
前10%请求完成时间
所有请求花费时间正序排序,取10%位置的执行时间
25%
前25%请求完成时间
所有请求花费时间正序排序,取20%位置的执行时间
50%
前50%请求完成时间
所有请求花费时间正序排序,取50%位置的执行时间
75%
前75%请求完成时间
所有请求花费时间正序排序,取75%位置的执行时间
90%
前90%请求完成时间
所有请求花费时间正序排序,取90%位置的执行时间
95%
前95%请求完成时间
所有请求花费时间正序排序,取95%位置的执行时间

k6

k6
grafanaUpdated Aug 17, 2024
K6 是一个现代化的、开源的负载测试框架,可以帮助开发者和测试人员对 Web 应用程序、API 以及微服务进行性能测试。K6 基于 JavaScript 编写,简单易学,不需要额外的编程语言或工具。同时该框架社区生态也很好,有很多拓展可以根据需要灵活的进行选择。
指标类型
名称
描述
Counter
计数器,对值进行累加
Gauge
最小值、最大值和最后一个值。
Rate
百分比
Trend
最小值、最大值、平均值和百分位数的统计数据指标
K6 始终都会收集的指标
名称
类型
描述
vue
Gauge
当前活动的虚拟用户数
vue_max
Gauge
虚拟用户的最大数量
iterations
Counter
脚本中的函数被执行的次数
data_received
Counter
接收到的数据量大小
data_sent
Counter
发送的数据量大小
iteration_duration
Trend
完成默认/主函数的一次完整迭代所花费的时间。
checks
Rate
checks 项的成功率
HTTP 特有的指标
名称
类型
描述
http_reqs
Counter
总请求数量
http_req_blocked
Trend
在发起请求之前被阻塞的时间
http_req_connecting
Trend
建立到远程主机的TCP连接所花费的时间。
http_req_tls_handshaking
Trend
与远程主机握手建立TLS会话所花费的时间
http_req_sending
Trend
将数据发送到远程主机所花费的时间
http_req_waiting
Trend
等待远程主机响应所花费的时间
http_req_receiving
Trend
从远程主机接收响应数据所花费的时间
http_req_duration
Trend
请求的总时间。它等于http_req_sending + http_req_waiting + http_req_receiving(即,远程服务器处理请求和响应花了多长时间,而没有初始DNS查找/连接时间)
http_req_failed
Rate
失败请求率
每一个 http 都会返回一个 HTTP Response 对象,下面是常用的一些属性。
属性
类型
Response.body
HTTP 响应正文
Response.cookies
响应 cookies ,属性是 cookie 名称,值是 cookie 对象数组
Response.error
发送请求失败后的错误信息。
Response.error_code
错误码
Response.headers
标头,键值对
Response.status
从服务器收到的 HTTP 响应代码
Response.timings
耗时(以毫秒为单位)
Response.timings.blocked
= http_req_blocked
Response.timings.connecting
= http_req_connecting
Response.timings.tls_handshaking
= http_req_tls_handshaking
Response.timings.sending
= http_req_sending
Response.timings.waiting
= http_req_waiting
Response.timings.receiving
= http_req_receiving
Response.timings.duration
= http_req_duration

ApacheBench(ab)

 ab 命令进行压力测试。ab 是 Apache HTTP 服务器的一个工具,可以用于测试 Web 服务器的性能。该命令需要在终端中执行。
以下是 ab 命令的基本用法:
其中,-n 参数指定要发送的请求数,-c 参数指定并发数,<url> 参数是要测试的 URL。例如,要发送 1000 个请求,每次并发 10 个连接,可以执行以下命令:
请注意,这些参数只是 ab 命令的一部分,还有其他参数可以使用,例如 -t 参数,用于指定测试的最长时间。你可以在终端中运行 man ab 命令来查看完整的 ab 命令文档和所有可用参数。

wrk

 

go-stress-testing

go-stress-testing
link1stUpdated Aug 17, 2024

对比

-
ab
locust
Jmeter
go-stress-testing
云压测
实现语言
C
Python
Java
Golang
-
UI界面
优势
使用简单,上手简单
支持分布式、压测数据支持导出
插件丰富,支持生成HTML报告
项目开源,使用简单,没有依赖,支持webSocket压测
更加真实的模拟用户,支持更高的压测力度
Loading...
文章列表
王小扬博客
云原生
Git
Elasticsearch
Apollo
产品
Think
生活技巧
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP
AI