我正在尝试利用动态生成的值(value)。
我的有效负载如下所示:
{
"payload": [
{
"questionDefinitionId": "jRs6zAh3GGt3G8tL9SzUrS8SiXyg6EirSElv3VRpX_Q=",
"questionText": "What was your childhood nickname?",
"languageCode": "en",
"questionNumber": 1,
"disabled": false
},
{
"questionDefinitionId": "pmyZ4excucJBuFvSPCr6yIvO74vZS8DUNPx0GYVR57E=",
"questionText": "What is your favorite team?",
"languageCode": "en",
"questionNumber": 2,
"disabled": false
},
{
"questionDefinitionId": "awE_x8cXHcc0uhJ7lgtjzX1NtgA0IQBBWu7iDbVqW-k=",
"questionText": "What is the name of your favorite childhood friend?",
"languageCode": "en",
"questionNumber": 1,
"disabled": false
},
{
每次执行时,这一代都是不同的。
我需要获取:jRs6zAh3GGt3G8tL9SzUrS8SiXyg6EirSElv3VRpX_Q=,这是问题编号的questionDefinitionId值:1,但始终在Json文件中的不同位置生成
但每次他们的订单都位于长列表中的不同位置。
最佳答案
您的有效负载显示为 JSON反对我,在这种情况下,选择 JSON Extractor 更有意义。 ,这将更容易实现/阅读/支持/等。
例如,您可以使用 ==
获取 questionDefinitionId
属性值,其中 questionText
是 您童年的昵称是什么?
> Filter Operator像:
$.payload[?(@.questionText == 'What was your childhood nickname?')].questionDefinitionId
演示:
如果您希望 questionDefinitionId
其中 questionNumber
为 1
,请将 JSON 路径表达式修改为如下所示:
$.payload[?(@.questionNumber == '1')].questionDefinitionId
但是在您的示例中,有 2 个问题的编号为 1
参见API Testing With JMeter and the JSON Extractor有关该概念的更多信息。
关于regex - 如何从动态生成中提取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53210543/