我想在我的web应用程序中运行一个POST动作的负载测试。问题是,只有在POST数据中收到唯一的电子邮件地址时,才能完成操作。我产生有几千WCAT脚本要求每个都有唯一的电子邮件,如:加载测试随机:如何设置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;
}
当我运行测试3×100 = 300个客户开始发送请求,但他们按照相同的顺序进行处理,以便处理来自第一个客户端的第一个请求,然后来自其他客户端的下一个299请求不再是唯一的。然后处理来自某个客户端的第二个请求,来自其他客户端的299个相同请求不是唯一的。 我需要一种随机化请求或按不同顺序运行它们的方法,或者为每个虚拟客户端设置不同的脚本脚本,以便每个请求携带唯一的电子邮件地址。 WCAT可以做到吗?
或者也许有其他工具可以做这样的测试?
这就是我正在寻找的。 – PanJanek 2013-11-28 12:18:09
使用rand(),clientindex()和vclientindex也做了一些小改动, rand()中的数字应该是这样的字符串:“rand(”100000“,”1000000“)'。出于某种原因,我花了一个小时才弄明白这一点。 – 2014-03-27 14:00:45
@DJvanWyk,感谢您在rand()函数中注意到缺少的引号。我已经纠正了我答案中的错误。 – 2014-03-27 17:22:40