![](/img/trans.png)
[英]JMeter ClassNotFoundException on Java Request Sampler class
[英]Get and set JMeter's properties in Java Request Sampler
我一直在為某些Java代碼使用JSR223采樣器,但是現在我正在實現Java Request采樣器。 JSR223代碼不能直接在Java Request采樣器中工作。 需要進行一些更改。 例如,在JSR223中,代碼為:
props.put("p_driver", driver);
object = props.get("p_driver").getJsonObject(dbser, dbn, wfid);
在這里,驅動程序是驅動程序類型的對象(我們已經編寫了一個實用程序類。
我想創建一個Object類型的屬性,並將驅動程序對象保留在其中。 我也想通過Java獲取並設置不同的屬性。 我知道我們可以使用:
JMeterContextService.getContext().getCurrentSampler().getProperties("p_driver");
但是,關於jmeter變量和jmeter屬性如何在Java Request Sampler中工作的了解卻很少。
檢查JavaSamplerContext這是Sampler上下文,它僅支持get(只讀)操作:
JavaSamplerContext用於向JavaSamplerClient實現提供上下文信息。 當前,它由GUI中指定的初始化參數組成。
也是代碼中的實現說明:
此類中的所有方法當前都是只讀的。
我看到您設法獲取屬性,因此這是要讀取GUI中使用的屬性/變量,而不是設置/更新屬性/變量。
特別是將不支持影響多線程的更新屬性:
如果將來包括更新方法,則應定義它們,以便可以將JavaSamplerContext的單個實例與每個線程關聯。
這是讀取JMeter變量的kafka示例:
您正在尋找的是JavaSamplerContext 。
使用JMeter 4.0,您將可以訪問:
javaSamplerContext.getJMeterProperties()允許您設置/獲取然后可以使用$ {__ P(propName)}訪問的屬性,確保以線程安全的方式使用它
javaSamplerContext.getJMeterVariables()允許您設置/獲取變量,然后可以使用$ {varName}訪問這些變量,確保以線程安全的方式使用它
然后,您可以通過以下方式獲取變量或屬性:
javaSamplerContext.getJMeterProperties()。獲得( “PROPNAME”)
javaSamplerContext.getJMeterVariables()。獲得( “varName的”)
然后,您可以通過以下方式設置變量或屬性:
javaSamplerContext.getJMeterProperties()。put(“ propName”,所需對象)
javaSamplerContext.getJMeterVariables()。putObject(“ varName”,您想要的對象)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.