簡體   English   中英

條件 jsonpath 表達式在 groovy 腳本 jmeter 中不起作用

[英]Conditional jsonpath expressions not working in groovy script, jmeter

Conditional jsonpath expression: 
    $.[?(@.identifier == "369")]..columns.[?(@.type == "relationship")].token
  • 問題 01:jsr233 后處理器中的 groovy 腳本沒有解析 jsonpath 表達式。
  • 問題 02:我需要在 groovy 或 beanshell 中循環標識符值並獲取多個數組。
import groovy.json.JsonSlurper

JsonSlurper slurper = new JsonSlurper()
Map parsedJson = slurper.parseText(prev.getResponseDataAsString())

//String idval = parsedJson.sections[1].id

//String idval = parsedJson.[?(@.identifier == "369")]..columns.[?(@.type == "relationship")].token //trail 01 -failed at .[

String idval = parsedJson./[?(@.identifier == "369")]/..columns./[?(@.type == "relationship")]/.token  //trail 02 -no such property: columns for class

log.info(""+idval);

您不能將 JSON Path 表達式與JsonSlurper 一起使用,請考慮在返回的集合上使用find() / findAll()函數或改為使用JsonPath

def idval = com.jayway.jsonpath.JsonPath.read(prev.getResponseDataAsString(), '?($..sections[@.identifier == "369")]..columns.[?(@.type == "relationship")]')

更多信息: Apache Groovy - 為什么以及如何使用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM