Jmeter操作之跨線程組傳遞參數


 

思路:將某一線程組內的變量通過“__setProperty”函數設置成jmeter的全局變量,在另一線程組中通過“__P”函數調用即可。

1.添加-后置處理器-BeanShell PostProcessor

 

 

Parametres:把需要操作的參數傳遞給Bean Shell PostProcessor。前面提取出來的cookie的值,就把參數cookie寫入

Script:  string cookie=bsh.args[0];     把Bean Shell PostProcessor接收到的參數值,賦值給某參數。0是第一個值。

                 ${__setProperty(newcookie,${cookie},)};        調用函數__setProperty,把Bean Shell PostProcessor中的參數cookie的值賦值給newcookie,並設置newcookie為jmeter內置屬性。

2.其他線程組中引用----${__P(newcookie,)}

 

后記:

(2018-10-09)

 這一功能真的很好用,並且我今天在工作中用到了:模擬用戶連續登錄兩次,使用跨線程組的方式,兩個線程組分別依次登錄,由於登錄后的操作要使用登錄時獲得的WorkspaceId,因此,第一次的WorkspaceId用beanshell取到,第二次登錄后也取到WorkspaceId,不做任何操作,只添加一個Debug PostProcessor用於看取的結果。

測試:兩次的WorkspaceId值應該一致,但測試結果為不一致。

分析:開始時我以為是我這個測試小白哪里搞錯了,后來看到腳本思考了一下:

1、WorkspaceId兩次都取到了,沒有報錯,也沒有報錯信息;

2、查看使用WorkspaceId的接口的響應信息,結果是本該顯示的內容為空;

3、分析業務功能,有沒有可能是研發人員改了代碼?詢問過給到的答案是業務功能沒變;

4、查看數據庫,發現該顯示的內容庫中沒有,說明內容沒有生成。

這時候就可以提bug了,后來研發人員看了發現確實是他們的失誤,有兩個jar包沒有替換過去。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM