【发布时间】:2019-11-10 10:41:40
【问题描述】:
我有一个关于基本术语的问题,但没有找到详细的解释。输入数据:framework k6 v0.25.1,http-requests。
问题一:从什么角度看VU(虚拟用户)的实现:
1) 客户端;
2) 服务器端;
3) 客户端-服务器的交互?
关于 VU 精髓的精妙之处,您应该阅读哪些内容,尤其是在 k6 中? 现在我发现每个 VU 在客户端和服务器端占用一个网络端口。
加载配置文件:
1) rps:1; vus:1; N 分钟的持续时间——我在 Grafana 中看到请求数量的增加非常少:+~1rps。一切都很好;
2) rps:1; vus:1..1000 在 N 分钟内通过 stages 中的选项 target 加速 - 我看到负载在峰值增加了 ~+100rps,尽管根据 k6 documentation 的选项“rps”是“最大每秒发出的请求数,所有 VU 的总请求数”选项,即不是 ~+100rps,我希望看到负载在 ~1rps,与经验 #1 类比
— 即 rps 限制错误的 k6 错误不会在所有 VU 线程中占用 rps 数量,或者每个 VU 存在所需的 VU 的隐藏合法行为。
注意:我在场景开始和结束时设置了一个任意超时以实现负载分布均匀。
问题 #2:增加 vus 时非法超过 rps 限制的 rps 惊人增长的原因是什么?
例子:
import http from "k6/http";
export let options = {
stages: [
{ duration: "1m", target: 1, rps: 1 },
{ duration: "1m", target: 200, rps: 1 },
{ duration: "1m", target: 500, rps: 1 },
{ duration: "1m", target: 1000, rps: 1 },
{ duration: "1m", target: 500, rps: 1 },
{ duration: "1m", target: 200, rps: 1 },
{ duration: "1m", target: 1, rps: 1 },
]
};
export default function() {
http.get("https://httpbin.test.loadimpact.com/get");
console.log("request made by VU " + __VU);
};
【问题讨论】:
标签: load-testing k6