k6负载测试学习知识
一、k6 是一个以开发人员为中心的免费开源负载测试工具,旨在使性能测试成为一种高效且愉快的体验。使用 k6,您将能够更早地发现性能回归和问题,从而构建可扩展的弹性应用程序。
二、测试种类
(smoke test) 冒烟测试, 验证系统的最小负载,而不会出现任何问题
(load tet)负载测试, 主要根据并发用户以及每秒请求评估系统性能
(stress test,spike test) 压力测试&&峰值测试,评估系统极限以及极端条件下的稳定性
(soak test)浸泡测试,系统长时间稳定性测试
- 冒烟测试是常规负载测试,配置为最小负载。每次编写新脚本或修改现有脚本时,您都希望运行冒烟测试作为完整性检查。
- 负载测试主要关注在并发用户数或每秒请求数方面评估系统的当前性能。用于确定系统在正常和峰值条件下的行为。
- 负载测试主要与评估系统的性能而言,压力测试的目的是在重负载下,以评估该系统的可用性和稳定性。
- 尖峰测试是一种压力测试,它会立即以极端的负载激增淹没系统。尖峰测试是压力测试的一种变体,但它不会逐渐增加负载。相反,它会在很短的时间内达到极端负载。
- 浸泡测试揭示了由于系统长时间处于压力下而导致的性能和可靠性问题。而负载测试主要与性能评估而言,和 压力测试涉及在极端条件下系统稳定,浸泡测试在一段较长的时间涉及可靠性。
三、相关名词
vus 当前并发数
vus_max 虚拟用户的最大数量
rps 每秒并发数
duration 持续运行时间
checks 断言成功率
data_sent 发送的数据量
data_received 接收到的数据量
iterations 测试中的vu执行js脚本(default函数)的总次数
iteration_duration 完成默认/主函数的完整迭代所花费的时间
dropped_iterations 由于缺少vu(对于达到率执行程序)或缺少时间(由于基于迭代的执行程序中maxDuration过期)而无法启动的迭代次数
四、相关命令
k6 run exam.js 执行js文件的测试
k6 pause 暂停测试执行,暂停所有VU
k6 resume 取消暂停k6,导致所有活动的VU恢复执行
k6 scale 更改活动VU的数量(或允许的最大VU数量)
k6 stats 报告当前已收集的统计信息
k6 status 报告测试的一般状态
官方文档:https://k6.io/docs/