我试图在JMeter 5.0中设计一个API负载测试的测试脚本。这是我的线程组信息:

下面是身体数据,我已经给它添加了一些变量和函数。您还可以在这里上查看示例JSON正文数据
{
"app_name": "Telekom",
"source": "MOENGAGE",
"moe_request_id": "req_${__threadNum}",
"events": [
{
"event_name": "Email Opened",
"event_code": "MOE_EMAIL_OPEN",
"event_uuid": "${__UUID}",
"event_time": ${__jexl3(${__time(,)}/1000,)},
"event_type": "CAMPAIGN_EVENT",
"event_source": "MOENGAGE",
"uid": "${__counter(,)}-${__RandomString(7,ABCDEFG123456)}${uid}",
"email_id": "${email}",
"event_attributes": {
"campaign_id": "${__RandomString(24,abcdefghijklmn123456789)}",
"campaign_name": "July2021_16072021_LigaSuper_English",
"campaign_type": "GENERAL",
"campaign_channel": "EMAIL",
"moe_delivery_type": "One Time",
"moe_campaign_tags": [
"engagement"
],
"moe_campaign_channel": "Email",
"u_em": "${email}"
},
"user_attributes": {
"PRODUCT_TYPE": "Unifi",
"moengage_user_id": "60dc48d4d722040a2e78b788",
"SERVICE_NO": "${uid}",
"id": "${email}"
},
"device_attributes": {}
}
]
}我还包括JSON抽取器,用于在响应体上进行关联:

以下是查看结果树中的结果。增加了调试采样器,看看我的参数化和相关是否工作。幸运的是,只有我的参数化是有效的,而相关性不起作用。

更新的:这是响应体的示例:

我想在响应体中与"rqUuid": "urn:uuid:1a5d8617-258c-49f7-b1a7-5b8ee71fb9fd"相关。问题是,这是关联JSON体的正确方法吗?我是否需要关联响应体,尽管我已经在正文数据中定义了函数"event_uuid": "${__UUID}"?
谢谢。感谢你的帮助。
发布于 2021-08-09 05:28:40
您可以使用JSON萃取器或JSON JMESPath萃取器从JSON响应中提取值。
您的JSON路径表达式应该是responseHeader.rqUuid

您可以通过视图结果树或联机工具计算JSON路径表达式或JMESPath表达式。

示例JMX被上传到GitHub以供参考https://github.com/pragmatictesters/Pragmatic-Learning-JMeter-Examples/blob/master/TestPlan-StackOverFlow-68706730-JSON.jmx。
发布于 2021-08-09 05:44:16
您正在使用正则表达式使用JSON从JSON响应中获取数据。您需要使用JSON路径表达式而不是正则表达式。
如果要从响应中提取event_uuid,则json路径表达式将是events[*].event_uuid。
要获取event_uuid数组对象的第一个events,可以使用events[0].event_uuid
发布于 2021-08-09 06:55:31
JSON Extractor允许您执行JsonPath查询,看起来您正在尝试在那里使用正则表达式,这将导致语法错误,您可以查看jmeter.log文件获得详细信息:

您正在向我们展示请求数据,并询问如何从响应中提取值,以便能够帮助我们至少看到部分(或更好的完整)响应数据,以及需要它的哪一部分。
到目前为止,我只能给出以下建议:切换到正则表达式抽取器,它有可能在没有任何更改的情况下开始工作。
https://stackoverflow.com/questions/68706730
复制相似问题