|

需求:使用 k6 对接口进行压力测试。
回顾
k6 工具
k6是一款现代负载测试工具,基于我们在性能和测试行业多年的经验而打造。它功能强大、可扩展且功能齐全。其主要设计目标是提供最佳的开发人员体验。
其核心特点是:
可配置的负载生成。即使是低端机器也可以模拟大量流量。
测试即代码。重复使用脚本、模块化逻辑、版本控制,并将测试与 CI 集成。
功能齐全的 API。脚本 API 包含多种功能,可帮助您模拟真实的应用程序流量。
嵌入式 JavaScript 引擎。Go的性能,JavaScript 的脚本熟悉度。
多协议支持。HTTP、WebSockets、gRPC、浏览器等。
大型扩展生态系统。您可以扩展 k6 以满足您的需求。许多人已经与社区分享了他们的扩展!
灵活的指标存储和可视化。汇总统计数据或细粒度指标,导出到您选择的服务。
与 Grafana 云本机集成。用于测试执行、指标关联、数据分析等的SaaS 解决方案。
这就是 21 世纪的负载测试。
文档:https://grafana.com/docs/k6/latest/get-started/
源码地址:https://github.com/grafana/k6
Windows 版本下载:https://github.com/grafana/k6/releases/download/v0.57.0/k6-v0.57.0-windows-amd64.zip
测试
新建 test.js 配置脚本,代码如下:
运行测试,命令:
输出详解
- scenarios:简述测试脚本运行的情况;说明有多少个测试案例、最大的虚拟用户数,最大的运行持续时间。
- data_received:接收到的数据量大小
- data_sent:发送的数据量大小
- http_req_blocked:在发起请求之前被阻塞的时间
- http_req_connecting:建立到远程主机的 TCP 连接所花费的时间
- http_req_duration:请求的总时间。它等于 http_req_sending + http_req_waiting + http_req_receiving重要指标
- http_req_failed:失败请求率
- http_req_receiving:从远程主机接收响应数据所花费的时间,而没有初始DNS查找/连接时间
- http_req_sending:将数据发送到远程主机所花费的时间
- http_req_tls_handshaking:与远程主机握手建立TLS会话所花费的时间
- http_req_waiting:等待远程主机响应所花费的时间
- http_reqs:总请求数量TPS
- iteration_duration:完成默认/主函数的一次完整迭代所花费的时间
- iterations:脚本中的函数被执行的次数
- vus:当前活动的虚拟用户数
- vus_max:虚拟用户的最大数量
- checks:checks 项的成功率
输出结果支持:Amazon CloudWatch, Cloud, CSV, Datadog, Dynatrace, Elasticsearch, Grafana Cloud Prometheus, InfluxDB, JSON, Netdata, New Relic, Prometheus, TimescaleDB, StatsD,参考:https://grafana.com/docs/k6/latest/get-started/results-output/ |
上一篇:.NET/C# 使用 SM3 算法生成签名下一篇:英伟达 AI 超级计算机 NVIDIA DGX Spark 接受预定
|