我有一个关于基本术语的问题,没有找到详细的解释。输入数据:框架k6 v0.25.1,http-请求。
问题#1 :从角度来看,VU(虚拟用户)的实现是什么:
1)客户端;
2)服务器端;
3)客户端与服务器之间的交互?
您应该了解VU本质的微妙之处,尤其是在k6中? 现在,我发现每个VU在客户端和服务器端都占用一个网络端口。
加载配置文件:
1)rps:1; vus:1; N分钟的持续时间—在Grafana中,我发现请求数量的增加确实很小:+〜1rps。一切都很好;
2)rps:1; vus:通过target
中的选项stages
在N分钟内加速了1..1000 —我看到负载的峰值增加了〜+ 100rps,尽管根据{{3 }}是“所有VU总共每秒发出的最大请求数”选项,即与经验#1类似,而不是我期望的〜1rps负载~~ 100rps
—即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);
};
答案 0 :(得分:1)
Virtual User
或VU
是k6
的特定定义和实现。 VU
是执行脚本,向服务器发出一个或多个HTTP请求的实体。
如果您正在测试Web服务器,则可以认为VU
与真实用户相同。
如果您正在测试API,则VU
每秒向服务器发出的请求(RPS)会比实际VUs
多。例如,您可以定义5个VU,但是每个VU每秒可以产生10个请求。这就是为什么当您的VU增加时,您可以很快达到RPS限制。
您可以在此link上了解有关VU定义的更多详细信息。