我使用jmeter进行REST测试。 我发了一个HTTP请求,这是响应数据:
{"id":11,"name":"value","password":null,"status":"ACTIVE","lastIp":"0.0.0.0","lastLogin":null,"addedDate":1429090984000}
我只需要
中的ID(11){"id":11,....
我使用下面的REGEX:
([0-9].+?)
它完美无缺,但如果我的ID超过2位,则会出现问题。我需要将REGEX更改为:
([0-9][0-9].+?)
我的问题是否有任何动态REGEX。谢谢你的关注。
此致 Stefio
答案 0 :(得分:2)
如果您想要{"id":
和,
之间的任何整数,请使用以下正则表达式:
{"id":(\d+),
然而,处理JSON数据的更智能方式可能是JSON Path Extractor(可通过JMeter Plugins获得),未来可以更轻松地使用此选项来复杂的JSON。
请参阅Using the XPath Extractor in JMeter指南(向下滚动到"解析JSON")以了解有关语法和用例的更多信息。
答案 1 :(得分:1)
我建议使用以下正则表达式:
"id":([^,]*),
这将首先找到" id":然后在找到逗号之前查找不是逗号的任何内容。请注意,字符分组仅在ID的值附近。
这适用于任何长度ID。
编辑: 相同的概念适用于几乎所有JSON数据,例如引用值的地方:
"key":"([^"]*)"
只要引用了值且不包含引号,该正则表达式将从给定键中提取值。它首先找到" key":然后在下一个引用之前匹配任何不是引用的内容。
答案 2 :(得分:0)
你可以像这样使用量词:
([0-9]{2,}.+?)
它会捕获2个或更多数字,然后是任何符号,1次或更多次。如果您想在数字后面不允许其他字符,请使用*
代替+
:
([0-9]{2,}.*?)