使用K6进行Web压力测试
本文介绍了使用K6进行服务负载和压力测试的方法,包括编写测试脚本`test.js`和使用Docker运行测试,并展示了测试结果示例。
标签:服务器运维
本文介绍了使用K6进行服务负载和压力测试的方法,包括编写测试脚本`test.js`和使用Docker运行测试,并展示了测试结果示例。
test.js
import http from "k6/http"
export let options = {
vus: 100, // 指定要同时运行的虚拟用户数量
duration: "10s", // 指定测试运行的总持续时间
}
export default function () {
const res = http.get("https://test.url")
}
docker run -i grafana/k6 run - <test.js
data_received..................: 13 MB 398 kB/s
data_sent......................: 56 kB 1.8 kB/s
http_req_blocked...............: avg=141.53ms min=2.99µs med=187.37ms max=314.8ms p(90)=279.5ms p(95)=293.93ms
http_req_connecting............: avg=31ms min=0s med=16.79ms max=88.77ms p(90)=63.09ms p(95)=78.42ms
http_req_duration..............: avg=10.06s min=78.29ms med=6.32s max=31.41s p(90)=19.07s p(95)=29.57s
{ expected_response:true }...: avg=10.06s min=78.29ms med=6.32s max=31.41s p(90)=19.07s p(95)=29.57s
http_req_failed................: 0.00% 0 out of 164
http_req_receiving.............: avg=7.18s min=29.49ms med=3.4s max=31.08s p(90)=16.52s p(95)=28.98s
http_req_sending...............: avg=54µs min=9.39µs med=32.61µs max=805.1µs p(90)=96.54µs p(95)=211.55µs
http_req_tls_handshaking.......: avg=83.14ms min=0s med=97.97ms max=205.26ms p(90)=178.27ms p(95)=190.42ms
http_req_waiting...............: avg=2.88s min=13.87ms med=614.64ms max=29.38s p(90)=14.44s p(95)=14.54s
http_reqs......................: 164 5.191253/s
iteration_duration.............: avg=10.2s min=240.5ms med=6.56s max=31.57s p(90)=19.28s p(95)=29.74s
iterations.....................: 164 5.191253/s
vus............................: 2 min=2 max=100
vus_max........................: 100 min=100 max=100
running (31.6s), 000/100 VUs, 164 complete and 0 interrupted iterations
default ✓ [ 100% ] 100 VUs 10s