Jmeter:如何使用正则表达式检索第二行的值?

Jmeter: how to retrieve values which is in 2nd line using Regx?

我正在从数据库中检索名字,并使用 REGx(jmeter) 将其存储在对象中。由于在第二行(PF 屏幕截图)中检索到数据,当我在 api 中发送该数据时,请求它进入第二行,如下所示。因此 API 返回 400。请为此提出可能的解决方案?

数据库响应:

FirstName

RockyBhai

使用 Regx

FirstName([^"]+)

我的请求:

{
"name":"${name}",
}

jmeter 已发送 api 请求:

{
"name":"

RockyBhai

",

}

我期待:

{
"name":"RockyBhai",
}

IMG

按如下方式配置您的正则表达式提取器:

  • 创建变量的名称:任何有意义的,即firstName
  • 正则表达式:(\w+)
  • 模板:$
  • 匹配号:2

您应该能够在需要时以 ${firstName} 的形式访问提取的值:

参考文献:

您所需要的只是一个模式,它将 trim 第 1 组中从作为 [^"] 捕获的空格捕获的值匹配除 " 之外的任何字符(包括空格)。

您可以使用

FirstName\s*([^"]*[^"\s])

参见regex demo

详情

  • FirstName - 一句话
  • \s* - 0 个或多个空格(这个trim是左边的空格)
  • ([^"]*[^"\s]) - 捕获组 1:
    • [^"]* - "
    • 以外的任何 0+ 个字符
    • [^"\s] - ...直到最接近的 " 之前的最后一个字符,它不是空白 (这 trims右边的空格)。

如果打算只匹配一行名字,在[^"]取反符class中加上\nFirstName\s*([^"\n]*[^"\s]).