gpt4 book ai didi

performance - 负载测试随机化 : How to set up WCAT to use different scenario for each virtual client?

转载 作者:行者123 更新时间:2023-12-04 05:39:00 24 4
gpt4 key购买 nike

我想在我的 Web 应用程序中运行 POST 操作之一的负载测试。问题是只有在 POST 数据中收到唯一的电子邮件地址时才能完成该操作。我生成了带有数千个请求的 wcat 脚本,每个请求都有唯一的电子邮件,例如:

 transaction                        
{
id = "1";
weight = 1;
request
{
verb = POST; postdata = "Email=test546546546546%40loadtest.com&...";
setheader { name="Content-Length"; value="...";
}
// more requests like that
}

我的 UBR 设置文件是这样的:
settings
{
counters
{
interval = 10;
counter = "Processor(_Total)\\% Processor Time";
counter = "Processor(_Total)\\% Privileged Time";
counter = "Processor(_Total)\\% User Time";
counter = "Processor(_Total)\\Interrupts/sec";
}
clientfile = "<above-wcat-script>";
server = "<host name>";
clients = 3;
virtualclients = 100;
}

当我运行测试时,3x100 = 300 个客户端开始发送请求,但它们以相同的顺序执行,因此来自第一个客户端的第一个请求被处理,然后来自其他客户端的接下来的 299 个请求不再是唯一的。然后处理来自某个客户端的第二个请求,来自其他客户端的 299 个相同请求不是唯一的。
我需要一种方法来随机化请求或以不同的顺序运行它们,或者为每个虚拟客户端设置单独的场景脚本,以便每个请求都带有唯一的电子邮件地址。
WCAT可以做到这一点吗?

或者也许有其他工具可以做这样的测试?

最佳答案

您是否考虑过使用 rand(x,y) WCAT 内部函数将随机整数添加到电子邮件地址?通过这样做,您可以想象具有使用随机电子邮件地址的单个请求的单个事务。因此,您可以使用单个随机事务 1000 次,而不是手动创建(例如)1000 个具有唯一电子邮件地址的请求。

您的新随机交易可能如下所示:

transaction                        
{
id = "1";
weight = 1;
request
{
verb = POST;
postdata = "Email=" + rand("100000", "1000000") + "@loadtest.com&...";
setheader { name="Content-Length"; value="...";
}
}

如果使用 rand(x,y)没有使它足够随机,那么您可以尝试使用其他函数来使数据更加随机。也许是这样的:
postdata = "Email=" + rand("100000", "1000000") + "@loadtest" + clientindex() + vclientindex() + ".com&...";

您可以 find the WCAT 6.3 documentation here ,包括可用的内部函数列表。如果内置函数不够用,您甚至可以构建自己的函数。

关于performance - 负载测试随机化 : How to set up WCAT to use different scenario for each virtual client?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11521334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com