我正在研究一個 JMeter 測驗計劃,它旨在對網路服務進行性能測驗。整個測驗計劃的主要部分包括兩個步驟。
- 創建這些資產 ID 之一(通過 Post-request) - 通過 JSON 提取器提取資產 ID 并使用 bean shell 斷言 ${__setProperty(assetId,${assetId})} 設定變數
- 通過 ID 洗掉創建的資產(洗掉請求) - ${__property(assetId)}
如果我使用單執行緒計劃,一切都會按預期進行,但是一旦我使用多個執行緒,則資產 ID 將具有最后一個執行緒值,而剩余的值將被遺漏。您能否讓我知道如何在洗掉呼叫中訪問/存盤所有資產 ID
uj5u.com熱心網友回復:
屬性與變數不同。變數是執行緒的區域變數;屬性對所有執行緒都是通用的,需要使用 __P 或 __property 函式來參考。
您應該使用 JSON 提取器的變數名稱而不是創建屬性以避免在執行緒之間共享變數。
uj5u.com熱心網友回復:
您正在每個連續執行緒覆寫相同的屬性,您需要執行以下操作:
在第一步中,將您的代碼更改為:
props.put("assetId_" ctx.getThreadNum(), vars.get("assetId"));在第二步中,使用__groovy() 函式讀取屬性值:
${__groovy(props.get("assetId_" ctx.getThreadNum()),)}
另請注意,從 JMeter 3.1 開始,您應該使用 JSR223 測驗元素和 Groovy 語言撰寫腳本,因此請考慮使用 Groovy遷移到JSR223 斷言。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314087.html
標籤:表现 电表 豆壳 jmeter-5.0
