如何基于另一个json值在Jmeter中提取json值
在Jmeter中,我试图从json中提取值。 以下是我收到的json响应:如何基于另一个json值在Jmeter中提取json值,jmeter,Jmeter,在Jmeter中,我试图从json中提取值。 以下是我收到的json响应: { Definition: { key: 1124, Id: 1743, srcID: "3427", pcKey: -1, userName: "abraizada", cName: "JMeter2016-11-27-1480283993838", Type: "SUBJECT",
{
Definition: {
key: 1124,
Id: 1743,
srcID: "3427",
pcKey: -1,
userName: "abraizada",
cName: "JMeter2016-11-27-1480283993838",
Type: "SUBJECT",
cohortTool: "Web app",
cCount: 74,
extractionStatus: "Completed",
dateCreated: "2017-05-09T18:35:35Z"
},
datasource: {
id: 2,
name: "Claims-OMOP",
subjectCount: 116352
},
project: {
id: 747,
name: "Jmeter Project"
}
},
{
cohortDefinition: {
key: 1123,
Id: 1742,
srcID: "3447",
pcKey: -1,
userName: "IE_USER",
cName: "JMeter2016-11-15-1479204865900",
Type: "SUBJECT",
cohortTool: "Web app",
cCount: 74,
extractionStatus: "",
dateCreated: "2017-05-09T18:35:35Z"
},
datasource: {
id: 2,
name: "External",
sCount: 116352
},
project: {
id: 747,
name: "Jmeter Project"
}
},
从上面的响应中,如果srcID=3447,我想提取值'key'。
我试过这么做
$…cohortKey[?(@.srcohortId=3447)].cohortKey
但是没有得到结果。有人能帮我根据条件提取“关键”值吗 下面是将提取值的表达式
`$..[?(@.srcID=3447)].key`
参考:
以下是将提取值的表达式
`$..[?(@.srcID=3447)].key`
参考:
您可以使用JSON路径表达式执行此操作,如下所示:
$..[?(@.srcID==3447)].key
其中:
-是递归下降,它有助于查找json数据中的任何地方。
-数组表示过滤器将在数组中应用和查找[]
-应用筛选器/条件(脚本)表达式?()
-当前对象@
-具有值为@.srcID==3447
3447的子
的currect对象srcID
-获取满足上述条件的对象的密钥.key
有关JSON提取器的更多用法,请参阅:
$..[?(@.srcID==3447)].key
其中:
-是递归下降,它有助于查找json数据中的任何地方。
-数组表示过滤器将在数组中应用和查找[]
-应用筛选器/条件(脚本)表达式?()
-当前对象@
-具有值为@.srcID==3447
3447的子
的currect对象srcID
-获取满足上述条件的对象的密钥.key
有关JSON提取器的更多用法,请参阅:
$[?(@.srcID)==${SRC_ID}].key
Tom,能够解决它。$..[?(@.srcId=='${cid}')].cohortKey。感谢你发布的链接。感谢Tom Tran。我能够做到这一点。现在我尝试对其进行参数化。如果我想将3447作为变量,我该怎么做?步骤1:使用正则表达式提取ID,让我们将其称为CID,现在我想将其传递到步骤2 ie Json提取器,以基于CID获取密钥。这是我的代码$。。[?(@.srcId=${uuu evalVar(${cid})}].cohortKey。但我在cohortKey JSON提取器中处理JSON内容时遇到错误,消息:无法分析从位置3开始的令牌。应为?,',0-9,*它与上面的表达式相同。我假设您将提取srcID并将其存储到名为SRC_ID的变量中,那么您的JSON路径表达式将为:$[?(@.srcID)==${SRC_ID}].key
Tom,能够解决它。$..[?(@.srcId=='${cid}')].cohortKey。谢谢你发布的链接。