我想在我的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