压测工具k6
k6是什么?
js脚本写用例的压测工具,简单、快速、报告详细
使用方法
1. 安装(windows下)
choco install k6
2. 写测试脚本
import {check} from 'k6';
import http from 'k6/http';
export const options = {
vus:10,
duration:'1m',
insecureSkipTLSVerify:true
};
export default ()=>{
const url = 'http://localhost:7257/weather';
const payload = JSON.stringify({fullname:"nick"});
const params = {
headers:{
'Content-Type':'application/json'
}
}
const res = http.get(url);
check(res,{
'is status 400':(r)=>r.status === 400,
});
}
3.脚本所在目录 打开命令行,并执行
k6 run .\stresstest.js
4.报告结果
/\ |‾‾| /‾‾/ /‾‾/
/\ / \ | |/ / / /
/ \/ \ | ( / ‾‾\
/ \ | |\ \ | (‾) |
/ __________ \ |__| \__\ \_____/ .io
execution: local
script: .\stresstest.js
output: -
scenarios: (100.00%) 1 scenario, 10 max VUs, 1m30s max duration (incl. graceful stop):
* default: 10 looping VUs for 1m0s (gracefulStop: 30s)
running (1m00.0s), 00/10 VUs, 25657 complete and 0 interrupted iterations
default ✓ [======================================] 10 VUs 1m0s
✗ is status 400
↳ 0% — ✓ 0 / ✗ 25657
checks.........................: 0.00% ✓ 0 ✗ 25657
data_received..................: 4.3 MB 72 kB/s
data_sent......................: 2.2 MB 37 kB/s
http_req_blocked...............: avg=4.46µs min=0s med=0s max=7.84ms p(90)=0s p(95)=0s
http_req_connecting............: avg=273ns min=0s med=0s max=1ms p(90)=0s p(95)=0s
http_req_duration..............: avg=22.99ms min=0s med=21.14ms max=99.26ms p(90)=34.6ms p(95)=35.91ms
{ expected_response:true }...: avg=22.99ms min=0s med=21.14ms max=99.26ms p(90)=34.6ms p(95)=35.91ms
http_req_failed................: 0.00% ✓ 0 ✗ 25657
http_req_receiving.............: avg=74.07µs min=0s med=0s max=5.34ms p(90)=249.16µs p(95)=608.73µs
http_req_sending...............: avg=11.74µs min=0s med=0s max=3.24ms p(90)=0s p(95)=0s
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=22.9ms min=0s med=21.03ms max=99.26ms p(90)=34.5ms p(95)=35.83ms
http_reqs......................: 25657 427.448837/s
iteration_duration.............: avg=23.38ms min=0s med=21.63ms max=111.07ms p(90)=34.98ms p(95)=36.32ms
iterations.....................: 25657 427.448837/s
vus............................: 10 min=10 max=10
vus_max........................: 10 min=10 max=10
5. 附被测代码
[HttpGet("weather")] [BetterServiceFilter<LoggingFilter>(Order = 1)] public IEnumerable<int> Index() { using (var _ = _logger.TimedOperation("begin {-1}", nameof(Index))) { return Enumerable.Range(1, 5); } }
浙公网安备 33010602011771号