2016-01-18 103 views
1

我需要在執行負載測試時作爲參數在SOAPUI請求中生成新的序列號。我爲此編寫了一個groovy腳本,並將其添加爲測試步驟。 但是,當我設置多個線程數時出現問題。在這種情況下,由於多個線程正在執行並且在多個請求中重複相同的序列號,所以不會爲每個請求生成新的序列號。 有人可以提出任何解決方案或解決方法來處理這種情況。 P.S.我沒有SOAPUI PRO,所以我可以使用DataGen。Groovy腳本不在SOAPUI loadtest中的多個線程中按順序執行

+0

如果你只需要號碼是唯一的,而不一定是連續的,你可以指定一個顯著不同的偏移到單獨的線程(所以線程1將有數字1,2,3等,線程2將擁有1001 ,1002,1003等顯然不會工作,如果數字實際上需要連續的,雖然 – CptBartender

+0

感謝您的回覆@CptBartender,但這對我來說實際上是不可能的。在我的情況下,線程的數量可以達到1000,所有生成的序列號都應該是一個3位數的數字,比如000,001,002 ...不管怎麼說,請你讓我知道我們如何設置SOAPUI中所有線程的偏移量?謝謝! –

+0

@AkhilTiwari [This](http:// stackoverflow .COM /問題/ 34878284 /如何到獲得-A-獨立的上下文功能於不同-的soapUI-測試用例-實例-RU寧寧)也可能是你的問題。 – user1207289

回答

0

如果您只是希望在SOAP請求參數中使用唯一編號,那麼每次運行時都要在參數中直接使用該參數。

${=((long) Math.floor(Math.random() * 90000000L) + 10000000L)} 
+0

謝謝@ user1207289但這不會解決問題。我需要生成一個只有000,001,002 ... 998,999的3位數字,並且線程數可以是1000.所以,在這種情況下,隨機函數將不會執行。它最罕見的機會,它爲所有1000線程生成所有唯一的數字。因此,我需要按順序增加數量。 –

+0

@Akhil Tiwari使用閉包作爲內聯腳本,如[this](http://stackoverflow.com/questions/7531646/is-there-any-math-function-which-gives-sequence-of-numbers-when-永遠不會調用它),或者像[this](http://codereview.stackexchange.com/questions/958/generating-a-sequential-number-for-app-wide-use)那樣使用'AtomicLong'關閉。 – user1207289