【问题标题】:How to remove special characters, string , number from regax如何从正则表达式中删除特殊字符、字符串、数字
【发布时间】:2021-11-01 07:19:42
【问题描述】:

我有。当我重新运行一些请求时,在 jmeter 记录的请求中完成了参数化。失败了,但我已经完成了捕获变量并传递给 下一个请求,但有问题

响应格式动态变化

我的正则表达式 - stateToken":"(.+?)"

\x2D is. additionalpart is coming some time so i need re write regax to remove this when we getting that 

失败案例

002KljInsq318mkPTkDTuJ06eLSxIQmVga\x2DSuvHmDe

{"stateToken":"00UaBoY\x2D81AIL32Nz9qmUJrIarSv3OgfUdd8FHGSkb"}

 
{"stateToken":"003LYZGSYKn3io1ocOwCBNcp2I\x2Dt8UbkdBfruaC6C0"}
 
{"stateToken":"00C8O4pt\x2DcSPEzHrt69zqmEGta9KbjdwywEVdkICku"}
{"stateToken":"00JgMsy7\x2DzXDP0gxaeWv4dj8EguFTWtnLxV\x2DBKTkIq"}

工作

{"stateToken":"00fswJVHKpW7dNhNVK0bRclBBrsuMLHBBevJ8IS1Wz"}
{"stateToken":"00ZVZXpSJn7v3lxNTrEqy1mAGydgroO5apvoTlWH2u"}

有什么想法吗?

【问题讨论】:

    标签: jmeter performance-testing


    【解决方案1】:
    1. 看起来您的应用程序存在功能问题,如果它返回无法用于身份验证的令牌,这听起来像是一个错误,因此与其尝试在 JMeter 中实现解决方法,不如报告它,因为它需要修复。

    2. JSON is not a regular language 因此使用正则表达式从中提取数据不是最好的主意,我建议考虑改用JSON ExtractorJSON JMESPath Extractor

    3. 如果您仍然想绕过令牌的间歇性问题并从令牌中删除有问题的元素(我再说一遍,我怀疑您的应用程序的真实用户会这样做),您可以使用合适的 JSR223 Test Element 和类似的代码来做到这一点:

      def before = vars.get('token')
      log.info('Before: ' + before)
      
      def after = before.replace('\\x2D','')
      log.info('After : ' + after)
      
      vars.put('token', after)
      

      演示:

    【讨论】:

    • 我尝试使用 JSR223 测试元素,但无法正常工作(我为之前的请求创建了 JSR223 测试元素)
    猜你喜欢
    • 2011-03-19
    • 2016-05-26
    • 2017-06-22
    • 2022-07-26
    • 1970-01-01
    • 2021-03-13
    • 2017-09-20
    • 2017-01-03
    相关资源
    最近更新 更多