首页 > 解决方案 > Jmeter:如何使用 Regx 检索第二行中的值?

问题描述

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

数据库响应:

FirstName

RockyBhai

使用正则表达式

FirstName([^"]+)

我的要求:

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

jmeter 发送 api 请求:

{
"name":"

RockyBhai

",

}

我期待:

{
"name":"RockyBhai",
}

IMG

标签: regexjmeterjmeter-4.0

解决方案


您所需要的只是一个模式,该模式将从被捕获为[^"]匹配任何字符但"(包括空格)的空格中修剪第 1 组中捕获的值。

您可以使用

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

请参阅正则表达式演示

细节

  • FirstName- 一个字
  • \s*- 0 个或多个空格(这会修剪左侧的空格)
  • ([^"]*[^"\s])- 捕获组 1:
    • [^"]*- 除了任何 0+ 字符"
    • [^"\s]- ...直到最接近"的不是空白的字符之前的最后一个字符(这会修剪右侧的空白)。

如果您打算仅在一行上匹配名称,请添加\n[^"]否定字符类中,FirstName\s*([^"\n]*[^"\s]).


推荐阅读