无法从 JSR223 采样器获取值



我在Jmeter中有一个JSR223采样器,代码如下:

import com.jayway.jsonpath.JsonPath
import org.apache.commons.lang3.RandomUtils
import org.apache.jmeter.samplers.SampleResult
def options = JsonPath.read(prev.getResponseDataAsString(), '$.options')
if(options.size() == "1" || options.size() == "2") {
    def randomOption = options.get(0)
    def code = randomOption.get("code")
    vars.put('code1', code)
    def values = randomOption.get('values')
    def randomValue = values.get(RandomUtils.nextInt(0, values.size()))
    def value = randomValue.get('value')
    vars.put('valueF', value)
    def options2 = JsonPath.read(prev.getResponseDataAsString(), '$.options')
    def randomOption2 = options2.get(1)
    def code2 = randomOption2.get("code")
    vars.put('code2', code2)
    def values2 = randomOption2.get('values')
    def randomValue2 = values2.get(RandomUtils.nextInt(0, values.size()))
    def value2 = randomValue2.get('value')
    vars.put('valueF2', value2)
}
else {
    vars.put('no loop','Not enterd into loop')
}
vars.put('counts',new 
groovy.json.JsonSlurper().parse(prev.getResponseData()).options.size() as 
String)
def size = com.jayway.jsonpath.JsonPath.read(prev.getResponseDataAsString(), 
'$.options_available')
if (size == []) {
    vars.put('size', 'NonConfigurable')
} 
else {
    vars.put('size', 'Configurable')
}

我无法在采样器之外获取代码 1 和值 F、代码 2 和值 F2 的值。任何可能的帮助将不胜感激!

尝试修改此行:

def value = randomValue.get('value')

def value = randomValue.get('value') as String

同样,对于"代码:

def code = randomOption.get("code") as String

当您遇到JMeter问题时,习惯于查看jmeter.log文件,在大多数情况下,它应该包含足够的故障排除信息。

如果您需要有关该主题的进一步帮助,请使用您尝试解析的完整响应对其进行更新。同时:

  • Groovy:解析和生成 JSON
  • JayWay JSonPath
  • 时髦是新黑

JSONArray 大小应该使用 length() ,更改代码

if(options.length() == 1 || options.length() == 2) {

最新更新