regex - 如何从动态生成中提取值(value)

标签 regex jmeter

我正在尝试利用动态生成的值(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

演示:

enter image description here

如果您希望 questionDefinitionId 其中 questionNumber1,请将 JSON 路径表达式修改为如下所示:

$.payload[?(@.questionNumber == '1')].questionDefinitionId

但是在您的示例中,有 2 个问题的编号为 1

参见API Testing With JMeter and the JSON Extractor有关该概念的更多信息。

关于regex - 如何从动态生成中提取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53210543/

相关文章:

testing - 如何在jmeter的循环 Controller 中使用jsr223变量

xml - 如何在 Jmeter 中将 .jtl 转换为 .xml 文件

performance - Jmeter - 等待特定响应并收集总响应时间

c++ - QT C++ QRegularExpression 多重匹配

regex - XSLT,使用正则表达式从 xml 中提取子字符串

javascript - 正则表达式检测数字但不检测小数

jmeter - 如何理解事务 Controller 响应时间?

javascript - 如何根据这种特定情况在javascript中拆分字符串

c# - 密码验证 REGEX 以禁止空格

proxy - 对特定的代理使用JMeter代理来记录请求