• 線程組之間的JMeter傳遞變量

    發表于:2024-3-11 09:33

    字體: | 上一篇 | 下一篇 | 我要投稿

     作者:愛碼小士    來源:知乎

    #
    Jmeter
    分享:
      下面,我們將看看如何在線程組之間共享和傳遞變量。
      在開發高級JMeter腳本時,很可能您將擁有多個線程組。每個線程組將執行不同的請求。
      一個很好的例子是我們需要使用Bearer Tokens對用戶進行身份驗證。一個線程組執行身份驗證并保存令牌。另一個線程組需要訪問此令牌并在另一個請求中使用它。
      因此,我們需要一種在線程組之間傳遞變量的機制。
      在JMeter中傳遞線程組之間的變量
      對于此示例,我們的測試計劃將具有兩個線程組。第一個線程組向Web服務發出GET請求。然后,我們使用JSON Extractor插件來解析JSON響應。
      使用JSONPath,我們提取特定鍵的值并將其保存為JMeter變量。
      這就是我們的JMeter請求的樣子:
      上述請求的結果以JSON格式生成以下響應:
      和我們的JSONPath提取第一個url看起來像:
      JSONPath查詢的值保存為first_url。此變量只能在同一個線程組中訪問,我們可以通過使用獲取其值${first_url},F在,我們如何通過其他線程組訪問此變量?
      答案是用于BeanShell Assertion將變量保存為全局屬性。通過這種方式,我們可以在線程組之間傳遞變量。
      要添加BeanShell斷言,請右鍵單擊Test Plan> Add> Assertion> BeanShell Assertion
      在我們的BeanShell斷言中,我們可以輸入以下代碼
      ${__setProperty(first_url, ${first_url})};
      現在在線程組2中,我們可以使用${__property(first_url)} 如下所示直接訪問此變量:
      或者,我們可以使用BeanShell PreProcessor來操作變量:
      在BeanShell PreProcessor中,我們可以通過使用來訪問從另一個Thread組傳入的變量props.get("name_of_variable") 。然后我們可以執行一些String操作并將結果保存為新變量。
      在上面的例子中,我們http:// 從Thread Group 1傳遞的變量中刪除了,我們將結果保存為變量host。
      該變量host 現在是線程組2的本地變量,并使用${host} 如下所示直接訪問它:
      本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系51Testing小編(021-64471599-8017),我們將立即處理
    《2023軟件測試行業現狀調查報告》獨家發布~

    關注51Testing

    聯系我們

    快捷面板 站點地圖 聯系我們 廣告服務 關于我們 站長統計 發展歷程

    法律顧問:上海蘭迪律師事務所 項棋律師
    版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2024
    投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

    滬ICP備05003035號

    滬公網安備 31010102002173號

    久久97久久97精品免视_欧洲国产伦久久久久久_91麻豆精品国产自产在线观_伊人久久大香线蕉综合av