https://github.com/Apipost-Team/runnerGo
| 压测值 | 含义 | 计算方法 |
|---|---|---|
| 总请求数 | 总共发送送请求总数 | 并发数*轮次 |
| 执行时间 | 压测任务执行时间 | 任务结束时间-任务开始时间 |
| 成功请求数 | 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 是一个现代化的、开源的负载测试框架,可以帮助开发者和测试人员对 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 |
ab 命令进行压力测试。ab 是 Apache HTTP 服务器的一个工具,可以用于测试 Web 服务器的性能。该命令需要在终端中执行。
以下是 ab 命令的基本用法: