柳北網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
下面,我們將看看如何在線程組之間共享和傳遞變量。
在開發(fā)高級JMeter腳本時,很可能您將擁有多個線程組。每個線程組將執(zhí)行不同的請求。
一個很好的例子是我們需要使用Bearer Tokens對用戶進行身份驗證。一個線程組執(zhí)行身份驗證并保存令牌。另一個線程組需要訪問此令牌并在另一個請求中使用它。
因此,我們需要一種在線程組之間傳遞變量的機制。
對于此示例,我們的測試計劃將具有兩個線程組。第一個線程組向Web服務(wù)發(fā)出GET請求。然后,我們使用JSON Extractor插件來解析JSON響應(yīng)。
使用JSONPath,我們提取特定鍵的值并將其保存為JMeter變量。
這就是我們的JMeter請求的樣子:
上述請求的結(jié)果以JSON格式生成以下響應(yīng)
和我們的JSONPath提取第一個url看起來像
JSONPath查詢的值保存為
first_url
。此變量只能在同一個線程組中訪問,我們可以通過使用獲取其值
${first_url}
?,F(xiàn)在,我們?nèi)绾瓮ㄟ^其他線程組訪問此變量?
答案是用于
BeanShell Assertion
將變量保存為全局屬性。通過這種方式,我們可以在線程組之間傳遞變量。
要添加BeanShell斷言,請右鍵單擊Test Plan> Add> Assertion> BeanShell Assertion
在我們的BeanShell斷言中,我們可以輸入以下代碼
${__setProperty(first_url, ${first_url})};
現(xiàn)在在線程組2中,我們可以使用
${__property(first_url)}
如下所示直接訪問此變量:
或者,我們可以使用BeanShell PreProcessor來操作變量
在BeanShell PreProcessor中,我們可以通過使用來訪問從另一個Thread組傳入的變量
props.get("name_of_variable")
。然后我們可以執(zhí)行一些String操作并將結(jié)果保存為新變量。
在上面的例子中,我們
http://
從Thread Group 1傳遞的變量中刪除了,我們將結(jié)果保存為變量
host
。
該變量
host
現(xiàn)在是線程組2的本地變量,并使用
${host}
如下所示直接訪問它: