「ONLY ONCE」控制器無法按照您認爲的方式工作。
它每分鐘只運行一次。因此,如果你有100個線程,它將運行100次。
如果你想讓它每次測試運行一次,請執行下列操作:
Test Plan (Set thread groups to "run consecutively"
- Cookie Manager
- Thread Group A (1 thread, 1 loop)
- - - Login Logic
- Thread Group B
- - - Rest of test
請注意,如果您需要共享線程組A和B之間的任何變量,你需要將它們設置爲屬性。變量不能在線程組之間共享,但屬性可以。你需要使用屬性功能。
函數__setProperty自動將該值存儲爲全局變量。啓動__Property的最簡潔方法是創建POST處理器Beanshell腳本作爲在THREAD A中創建cookie的採樣器的子元素。要檢索THREAD B中的值,需要將__property函數添加爲參數的VALUE需要cookie值。
BeanShell的腳本會是這個樣子:
props.put("COOKIENAME","COOKIEVALUE"); //creates a property "COOKIENAME" with value "COOKIEVALUE"
print(props.get("COOKIENAME")); //prints the value out to the console
上面的代碼總是有COOKIENAME相同的值,小於想法。所以,我們需要確保「COOKIEVALUE」是動態的。我建議使用POST-PROCESSOR正則表達式來提取cookie值,然後將其傳遞到beanshell腳本中。
所以,我們的測試計劃現在看起來是這樣的:
Test Plan (Set thread groups to "run consecutively"
- Thread Group A (1 thread, 1 loop)
- - - Login Logic
- - - - - Regex to grab cookie, store as "regexCookie"
- - - - - Beanshell to set property
- Thread Group B
- - - Rest of test
而我們的BeanShell腳本現在的樣子:
props.put("COOKIENAME",vars.get("regexCookie")); //creates a property "COOKIENAME" with value from "regexCookie"
print(props.get("COOKIENAME")); //prints the value out to the console
鏈接到用戶手冊:
我想一次發送所有的請求,如果我把「正常的HTTP請求」迴路控制器內,然後每個請求將由一個完成第一隻請求它會之後,這意味着執行一個從第二個開始。所以我無法找到有多少請求會導致連接崩潰。而且我還有一個疑問,就是一旦只有控制器,並且我仍然無法理解Once Only控制器的功能。在我的測試案例中,它運行於我在線程組中提到的所有線程。它僅對測試用例運行一次對?。請幫助您解決這個問題 – prashant 2011-01-21 11:52:06