所以,我从1个VU开始,到199个结束,之后VU的值检查数量不再增长。
所以,我尝试了这个
import http from "k6/http";
import { check } from "k6";
export const options = {
scenarios: { default: {
executor: 'constant-arrival-rate',
duration: '30s',
rate: 5000, timeUnit: '1s',
preAllocatedVUs: 900
} }
};
export default function() {
const res = http.get("http://ipv4:6399/game_heartbeat");
check(res, { "status was 200": r => r.status == 200 })
};
得到了
WARN[0002] VU 不足,已达到 900 个活动 VU,无法 初始化更多执行器=恒定到达率场景=默认
运行中(0m30.0s),000/900 VU,128808 完成,0 中断 迭代默认 ✓ [========================================] 000/900 VU 30 秒 5000 迭代/秒
尝试过
import http from "k6/http";
import { check } from "k6";
export const options = {
vus: 199,
duration: "30s"
};
export default function() {
const res = http.get("http://ipv4:6399/game_heartbeat");
check(res, { "status was 200": r => r.status == 200 })
};
并且得到了
运行(0m30.0s),000/199 VU,163220 完成,0 中断 迭代默认 ↓ [========================================] 199 个 VU 30秒
✓ status was 200 checks.........................: 100.00% ✓ 163220 ✗ 0
如果我将 VU 从 199 更改为 299、399、699 - 它不会改变检查数量。运行 30 秒仍会在 165k 左右
我的版本是 k6 v0.36.0 (2022-01-24T09:50:03+0000/ff3f8df, go1.17.6, linux/amd64)
我正在运行脚本,没有任何额外的参数,就像
k6 run script.js
一样
如何增加 k6 对测试服务的“压力”?
选项位于:
确定是 k6 还是您的应用程序耗尽了 Gas 将很有用。弄清楚这一点,你就可以继续前进。
如果您的应用程序是瓶颈......恭喜!您的测试表明了您的限制,您可以开始优化您的应用程序。或者投入更多资源,直到达到您想要的性能。
如果是 k6 无法跟上您的应用程序可以接收的流量,那么向您的应用程序致敬!请参阅如何为 k6 提供更多资源来使用。
顺便说一句,如果你在同一台机器上运行 k6 和你的应用程序,那么它们将会争夺资源。如果是这种情况并且您遇到瓶颈,请将其中一台移动到另一台计算机。