Regex 如何从JMeter中的相应响应中提取“ZTlhMDNhOGVkZV8xNTY3Mjk3MjAw”值?该值“ZTlhMDNhOGVkZV8xNTY3Mjk3MjAw”是动态的

Regex 如何从JMeter中的相应响应中提取“ZTlhMDNhOGVkZV8xNTY3Mjk3MjAw”值?该值“ZTlhMDNhOGVkZV8xNTY3Mjk3MjAw”是动态的,regex,jmeter,extractor,Regex,Jmeter,Extractor,答复: { "service_name": "signup", "message": "Sign Up has been done successfully", "global_error": "", "error": [], "data": { "session_key": "8f29d7c93e7089841208e94a7d98fc22", "user_profile": { "user_id": 65, "user_unique

答复:

{
  "service_name": "signup",
  "message": "Sign Up has been done successfully",
  "global_error": "",
  "error": [],
  "data": {
    "session_key": "8f29d7c93e7089841208e94a7d98fc22",
    "user_profile": {
      "user_id": 65,
      "user_unique_id": "e9a03a8ede",
      "dob": "Dec 06, 1998",
      "first_name": "FC7155313",
      "last_name": "FC1791398",
      "user_name": "FCwqim178",
      "email": "fc_slekjbp@mailinator.com",
      "phone_no": "3362239492",
      "balance": "0",
      "status": "2",
      "image": "http://dummy.projects.com/app/assets/img/default_user.png",
      "currency": "$",
      "profile_status": 1,
      "require_otp": false,
      "existing_user": 0,
      "master_country_id": null,
      "master_state_id": "3919"
    },
    "verification_link": "http://dummy.projects.com/activation/ZTlhMDNhOGVkZV8xNTY3Mjk3MjAw",
    "send_email_otp": false,
    "send_phone_otp": false
  },
  "response_code": 200
}
我正在使用JMeter,希望在下一个API中传递ZTlhMDNhOGVkZV8xNTY3Mjk3MjAw值。 该值ZTlhMDNhOGVkZV8xNTY3Mjk3MjAw为每个新用户注册生成动态。 但我的正则表达式不起作用

我写的正则表达式:

,"verification_link":"http://dummy.projects.com/activation/(.+?)","send_email_otp":

Template: $1$
Match No.: 1

您的正则表达式只匹配URL的第一部分,而不是您实际需要的部分。请尝试以下方法:

http:\/\/dummy\.projects\.com\/activation\/(.+)\",

这个?部分匹配在1和无限时间之间,尽可能少的时间称为延迟匹配,由+?。因此,您匹配激活/后出现的任何字符的第一个字符,然后停止。您没有得到您想要的全部值。

您的响应似乎是一个实体,因此有一个很高的变化,它看起来像:

{
  "service_name": "signup",
  "message": "Sign Up has been done successfully",
  "global_error": "",
  "error": [

  ],
  "data": {
    "session_key": "8f29d7c93e7089841208e94a7d98fc22",
    "user_profile": {
      "user_id": 65,
      "user_unique_id": "e9a03a8ede",
      "dob": "Dec 06, 1998",
      "first_name": "FC7155313",
      "last_name": "FC1791398",
      "user_name": "FCwqim178",
      "email": "fc_slekjbp@mailinator.com",
      "phone_no": "3362239492",
      "balance": "0",
      "status": "2",
      "image": "http://dummy.projects.com/app/assets/img/default_user.png",
      "currency": "$",
      "profile_status": 1,
      "require_otp": false,
      "existing_user": 0,
      "master_country_id": null,
      "master_state_id": "3919"
    },
    "verification_link": "http://dummy.projects.com/activation/ZTlhMDNhOGVkZV8xNTY3Mjk3MjAw",
    "send_email_otp": false,
    "send_phone_otp": false
  },
  "response_code": 200
}
因此,这个send_email_otp位可以很容易地转到下一行,在这种情况下,正则表达式将不匹配任何内容

我建议将您的正则表达式修改为:

"verification_link":\s?"http://dummy.projects.com/activation/(\w+)"
演示:

参考资料:


你用OP字符串试过正则表达式吗?它比我们想要的要匹配text@Toto结尾有一个逗号,请查看我在answerThis regex\.projects\.com/activation/+\中的链接,该链接不起作用。我无法提取验证链接value@C_J您正在提取组1吗?你得到了什么结果?查看更新的正则表达式,也许这会对您有所帮助?如果在比赛结束后,有一个输入碰巧有另一个输入,则会中断…您的正则表达式应该可以工作。能否显示您正在使用的代码?此正则表达式验证链接:\s?\w+不起作用。我无法提取验证链接值