【问题标题】:How to create regex如何创建正则表达式
【发布时间】:2017-09-29 08:34:00
【问题描述】:

有人可以帮助我如何从中创建正则表达式吗?我只需要a_n: " 之后的文本,所以我只需要这个文本。例如jgoijODIJGojsklfj4dgdg_797gsdg-df_gsdfh-dhfGSDhfdsg-dfg

{
  "a_n": "jgoijODIJGojsklfj4dgdg_797gsdg-df_gsdfh-dhfGSDhfdsg-dfg",
  "type": "something",
  "uuser": "userid",
  "expire": "6018"
}

【问题讨论】:

  • 这看起来像 json。您是否尝试过使用 json 解析器来加载和提取它?
  • 这是来自发布请求的响应,我需要在下一个请求标头中使用此值。我需要它用于 jmeter,所以最好的方法应该是 regex 或 xpath ..
  • regex 和 xpath 是两个完全不同的东西,我认为两者都不适合您的用例。此外,您应该为您的问题提供更多背景信息 - 例如。用例、编程语言、数据将如何变化。
  • 我有 jmeter POST 请求,响应数据是我发布的文本。我需要从此文本中使用 a_n: 的值在下一个请求标头中。我在 jmeter 中使用了类似的(xml 响应)xpath 提取器或正则表达式提取器。也可以使用一些 javascript 或 beanshell 脚本,但我认为通过正则表达式会更容易,因为我对脚本不是很熟悉...
  • 谢谢大家。我已经为 jmeter 安装了 json 提取器插件,所以我正在尝试这个,但是如果有人可以帮助我也可以使用 json 那就太好了。

标签: regex jmeter


【解决方案1】:

如果可以,只需使用 JSON 解析器来获取值。否则你可以使用

/{.*\"a_n\": \"(.*)\".*/

【讨论】:

    【解决方案2】:

    您可以通过JSONStream 实现此目的。

    cat file.json | JSONStream '.a_n'
    

    还有jq:

    jq .a_n file.json
    

    【讨论】:

      【解决方案3】:

      请看一看 (how to use a regular expression to extract json fields?)

      正则表达式应该是,

      /"a_n":\ ?"((\\"|[^"])*)"/i
      

      【讨论】:

        【解决方案4】:

        要在 JMeter 中提取它:

        1. 在您的请求采样器下添加jp@gc - JSON Path Extractor

        2. 要提取所需的数据,你必须这样设置:

        1. 您提取的值将保存在变量Jsonvar中。

        2. 现在您可以将此变量用于其他后续请求。

        【讨论】:

          【解决方案5】:

          JMeter 的Regular Expression Extractor 使用Perl-5 style regular expressions,因此相关配置为:

          • 正则表达式:"a_n": "(.+?)"
          • 模板:$1$

          还要注意,使用JSON Extractor 处理JSON 响应更有意义。相关的JSON Path 查询就像$.a_n 一样简单

          演示:

          更多信息:API Testing With JMeter and the JSON Extractor

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-03-20
            • 1970-01-01
            • 2010-10-01
            • 2022-12-05
            • 2015-03-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多