通过JMeter正则表达式提取器从响应中提取ID

时间:2018-10-03 04:17:31

标签: java regex jmeter

我需要使用正则表达式通过jmeter从响应中提取会话ID和用户ID。

响应:

\"SessionIdEncr\":\"TLGdqhQbxkEOziVJYXMD7Q==\",\"userIDEncr\":\"9xJbu+CGYN5RnnALeC8mKQ==\"

正则表达式是什么?

3 个答案:

答案 0 :(得分:0)

尝试使用此模式:

"SessionIdEncr":"([^"]+)","userIDEncr":"([^"]+)"

关于正则表达式模式的解释不多,除了([^"]+)使用技巧来捕获值之外。只要不捕获另一个双引号,它就继续进行,这将意味着该键/值对的结束引号。

这将捕获基数为64的编码后的会话ID和用户ID,并使它们在提取器模板中以$1$$2$的形式提供。

Demo

答案 1 :(得分:0)

  1. Regular Expression Extractor添加为返回此文本的请求的子项
  2. 配置如下:

    • 已创建变量的名称:任何有意义的变量,例如id
    • 正则表达式:\\"SessionIdEncr\\":\\"(.+?)",\\"userIDEncr\\":\\"(.+?)"

      其他字段可以留空

      JMeter Regular Expressions Extract 2 variables

  3. 您将可以在需要时将SessionID称为${id_g1},将UserId称为${id_g2}

    JMeter Regex for several matches

参考文献:

答案 2 :(得分:-1)

在JMeter中,您可以使用查看结果树的Regexp Tester测试/修复正则表达式:

  

Regexp Tester视图仅适用于文本响应。它在上部面板中显示纯文本。 “测试”按钮允许用户将正则表达式应用到上部面板,结果将显示在下部面板中。   正则表达式引擎与正则表达式提取器中使用的引擎相同。

对于您的情况,请创建2个Regular Expression Extractor,对于会话ID,请使用以下正则表达式:

SessionIdEncr\\":\\"([^\\]+)

类似地获取用户ID。