使用groovy集合(JSR223后处理器)设置JMter变量
我试图在JMter中设置一个变量,该变量的值位于JSR223处理器(Groovy)中的列表中。为此,我使用了方法使用groovy集合(JSR223后处理器)设置JMter变量,groovy,jmeter,Groovy,Jmeter,我试图在JMter中设置一个变量,该变量的值位于JSR223处理器(Groovy)中的列表中。为此,我使用了方法vars.putObject,但当我尝试在ForEach控制器中使用此变量时,循环不会执行 我的后处理器具有以下流程: 获取由正则表达式提取器生成的字符串列表 创建一个包含测试有效值的列表(筛选一些值) 将结果添加到JMter变量vars.putObject 导入org.apache.jmeter.services.FileServer int requestAssetsCount
vars.putObject
,但当我尝试在ForEach控制器中使用此变量时,循环不会执行
我的后处理器具有以下流程:
- 获取由
正则表达式提取器生成的字符串列表
- 创建一个包含测试有效值的列表(筛选一些值)
- 将结果添加到JMter变量
vars.putObject
int requestAssetsCount = vars.get("CatalogAssetIds_matchNr").toInteger()
int maxAssetsNumbers = vars.get("NumberAssets").toInteger()
List<String> validAssets = new ArrayList<String>()
def assetsBlackListCsv = FileServer.getFileServer().getBaseDir() + "\\\assets-blacklist.csv"
File assetsBlackListFile = new File(assetsBlackListCsv)
List<String> assetsBlackList = new ArrayList<String>()
log.info("Loading assets black list. File: ${assetsBlackListCsv}")
if (assetsBlackListFile.exists()) {
assetsBlackListFile.eachLine { line ->
assetsBlackList.add(line)
}
}
else {
log.info("Black list file doesn't exist. File: ${assetsBlackListCsv}")
}
log.info("Verifying valid assets")
for (def i = 1; i < requestAssetsCount; i++) {
def assetId = vars.get("CatalogAssetIds_${i}_g1")
if (!assetsBlackList.contains(assetId)) {
validAssets.add(assetId)
}
else {
log.info("Found a blacklisted asset. Skipping it. Asset ID: ${assetId}")
}
if (validAssets.size() >= maxAssetsNumbers) {
break
}
}
Concat字符串为“+(i+1)+”
不要在JSR223脚本中使用${}
语法,因为它将在脚本执行之前初始化值,而不是像预期的那样将字符串转换为“+(i+1)+”
不要在JSR223脚本中使用
${}
语法,因为它将在脚本执行之前初始化值,而不是像预期的那样您可以演示如何执行此操作:当我尝试在循环控制器中使用此变量时,循环不会执行。
对于每个控制器(字段输入变量前缀
)我把ValidAssetIds
。我在vars.putObject
中使用的名称,您能演示一下如何操作:当我尝试在循环控制器中使用此变量时,循环不会执行。
对于每个控制器(字段输入变量前缀
),我将ValidAssetIds
放入。我在vars.putObject
log.info("Storing valid assets list")
vars.putObject("ValidCatalogAssetIds_matchNr",validAssets.size())
for(def i = 0; i < validAssets.size(); i++) {
vars.putObject("ValidAssetIds_${i+1}_g",1)
vars.putObject("ValidAssetIds_${i+1}_g0","\"id\":\"${validAssets[i]}\"")
vars.putObject("ValidAssetIds_${i+1}_g1",validAssets[i])
}
log.info("Storing valid assets list")
vars.putObject("ValidAssetIds",validAssets)
vars.putObject("ValidCatalogAssetIds_"+ (i+1) + "_g",1)
vars.putObject("ValidAssetIds_"+ (i+1) + "_g0","\"id\":\"${validAssets[i]}\"")
vars.putObject("ValiAssetIds_"+ (i+1) + "_g1",validAssets[i])