【问题标题】:JSON regex patternJSON 正则表达式模式
【发布时间】:2015-12-23 14:31:27
【问题描述】:

我正在使用 JMeter 来测试我们的 API,但是(我认为)当字符串太大时,JMeter 会引发错误。我得到一个普通文本的结果,但是当我在结果树中选择 JSON 格式时,我得到了这个错误,我无法再查看响应。当我尝试使用不太大的字符串的不同响应时,我可以毫无问题地查看结果。

2015/12/23 15:25:22 ERROR - jmeter.JMeter: Uncaught exception:  java.lang.StackOverflowError
    at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
    at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
    at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
    at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
    at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
    at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
    at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
    at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
    at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
    at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
    at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
    at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
    at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
    at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
    at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)

采样器结果

Thread Name: Thread Group 3-1
Sample Start: 2015-12-23 15:07:54 CET
Load time: 383
Connect Time: 0
Latency: 382
Size in bytes: 16835
Headers size in bytes: 185
Body size in bytes: 16650
Sample Count: 1
Error Count: 0
Response code: 200
Response message: OK

Response headers:
HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/9
Transfer-Encoding: chunked
Content-Type: application/json
Date: Wed, 23 Dec 2015 14:07:54 GMT


HTTPSampleResult fields:
ContentType: application/json
DataEncoding: null

这是我发送给服务器的请求

{
    "event_id":"592929"
}

这就是响应

{
  "status": 1,
  "message": "Success",
  "result": {
    "data": [
      {
        "Event": {
          "event_id": 592929,
          "name": "",
          "description": "",
          "time": "2016-01-02 22:00:00",
          "venue_address": "",
        }
      },
      {
        "Venue": {
          "id": 1022,
          "name": "",
          "street": "",
          "postcode": "",
          "region": "",
          "Latitude": "",
          "Longitude": "",
          "short_description": "",
          "description": "",
          "facilities": ""
        }
      },
      {
        "Ticket": {
          "ticket_id": 567828,
          "ticket_price": "10.00",
          "sold_out": 0,
          "ticket_url": "",
          "available": 1
        }
      }
    ]
  }
}

现在,取决于我发送的值(以及我得到的结果),它要么正常工作,我可以查看 JSON 响应,要么不正常,当在结果树上选择 JSON 时,它给了我这个大错误.

这仅在使用 JMeter 时。我尝试使用 Postman,查看结果没有问题。

【问题讨论】:

    标签: json regex jmeter


    【解决方案1】:

    这是即将发布的 2.14 版本中修复的错误:

    您可以按照安装说明使用每晚构建:

    安装 JMeter 运行时

    【讨论】:

    • 当我尝试构建 Nightly 构建时,我在 java.lang.Class.getDeclaredConstructors0(Native Method) 处得到以下 errorava.lang.NoClassDefFoundError: org/apache/jorphan/util/JMeterException。 lang.Class.privateGetDeclaredConstructors(Class.java:2671) at java.lang.Class.getConstructor0(Class.java:3075) at java.lang.Class.newInstance(Class.java:412) at org.apache.jmeter.NewDriver .main(NewDriver.java:257) 引起:java.lang.ClassNotFoundException: org.apache.jorphan.util.JMeterException 我正在运行 OS X 10.11
    • 合并文件时出现问题,但现在已修复。每晚构建工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    相关资源
    最近更新 更多