📅  最后修改于: 2023-12-03 15:06:48.222000             🧑  作者: Mango
k6 是一个现代化的开源负载测试工具,它可以测量系统的性能并发现瓶颈。k6 使用 JavaScript 编写,可以在命令行中,也可以以扩展方式在 CI/CD 管道中集成。以下是使用 k6 进行性能测试的一些基本信息。
您可以在 官网 参考指南安装 k6,安装非常简单,只需要下载二进制文件或通过包管理工具安装即可。
编写测试代码的主要任务是定义想要模拟的用户行为:这可以是浏览网站、发送请求、填写表单或执行任何其他类型的任务。下面是一个基本的示例代码:
import http from 'k6/http';
import { sleep } from 'k6';
export default function () {
http.get('https://test.k6.io');
sleep(1);
}
这个例子执行一个 GET 请求,然后等待一秒钟,然后重复执行。该代码可以保存为名为 test.js
的文件。
现在,您可以使用 k6 执行测试了。如果您保存了上面的代码示例,只需在终端中输入:
k6 run test.js
然后可以看到测试结果的输出,类似于以下内容:
/\ |‾‾| /‾‾/ /‾‾/
/\ / \ | |/ / / /
/ \/ \ | ( / (
/ \ | |\ \ / /‾/
/ __________ \ |__| \__\ /__/
execution: local
output: -
scenarios: (100.00%) default
duration: 1m0s, iterations: 10
test: test.js
running (00m00.0s), 0/10 VUs, 1 complete and 0 interrupted iterations
running (00m01.0s), 10/10 VUs, 10 complete and 0 interrupted iterations
data_received..................: 33 kB 550 B/s
data_sent......................: 9.3 kB 155 B/s
http_req_blocked...............: avg=338.51µs min=91.71µs med=105.32µs max=1.73ms p(90)=153.47µs p(95)=243.92µs
http_req_connecting............: avg=275.74µs min=0s med=0s max=1.32ms p(90)=505.13µs p(95)=711.16µs
http_req_duration..............: avg=54.17ms min=50.05ms med=53.47ms max=57.72ms p(90)=55.61ms p(95)=56.92ms
http_req_receiving.............: avg=139.96µs min=111.78µs med=128.13µs max=290.53µs p(90)=205.22µs p(95)=247.51µs
http_req_sending...............: avg=64.46µs min=29.33µs med=58.13µs max=123.17µs p(90)=96.45µs p(95)=107.7µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=53.98ms min=49.92ms med=53.29ms max=57.54ms p(90)=55.43ms p(95)=56.71ms
http_reqs......................: 10 0.167491/s
iteration_duration.............: avg=106.32ms min=103.39ms med=105.58ms max=126.27ms p(90)=110.63ms p(95)=121.27ms
iterations.....................: 10 0.167491/s
vus............................: 10 min=10 max=10
vus_max........................: 10 min=10 max=10
您可以看到,本次测试使用了 10 个用户并发执行,每个用户重复执行 10 次迭代。可以看到每次迭代需要的时间,每次请求的结果,网络吞吐量和可用性等信息。
使用 k6 进行性能测试非常容易且多功能。在测试之前,请确保您的测试代码是准确和充分的,以免产生错误结论。