Regex 正则表达式JSON响应Gatling压力工具

Regex 正则表达式JSON响应Gatling压力工具,regex,json,scala,http,gatling,Regex,Json,Scala,Http,Gatling,希望在http响应中捕获名为scanNumber的变量,如下所示: {"resultCode":"SUCCESS","errorCode":null,"errorMessage":null,"profile":{"fullName":"TestFirstName TestMiddleName TestLastName","memberships":[{"name":"UA Gold Partner","number":"123-456-123-123","scanNumber":"123-456

希望在http响应中捕获名为scanNumber的变量,如下所示:

{"resultCode":"SUCCESS","errorCode":null,"errorMessage":null,"profile":{"fullName":"TestFirstName TestMiddleName TestLastName","memberships":[{"name":"UA Gold Partner","number":"123-456-123-123","scanNumber":"123-456-123-123"}]}}
.check(jsonPath("""${scanNumber}""").saveAs("scanNr")))
我怎样才能用常规费用做到这一点? 我使用的工具是带有Scala DSL的Gatling应力工具

我试着这样做:

{"resultCode":"SUCCESS","errorCode":null,"errorMessage":null,"profile":{"fullName":"TestFirstName TestMiddleName TestLastName","memberships":[{"name":"UA Gold Partner","number":"123-456-123-123","scanNumber":"123-456-123-123"}]}}
.check(jsonPath("""${scanNumber}""").saveAs("scanNr")))
但我得到了一个错误:

---- Errors --------------------------------------------------------------------
> Check extractor resolution crashed: No attribute named 'scanNu      5 (100,0%)
mber' is defined

使用此正则表达式在json中的任意位置匹配:

/"scanNumber":"[^"]+"/
如果你想匹配你说的结构中发生的事情,请使用:

/\{[^{[]+\{[^{[]+\[\{[^{[]*("scanNumber":"[^"]+")/

使用此正则表达式在json中的任意位置匹配:

/"scanNumber":"[^"]+"/
如果你想匹配你说的结构中发生的事情,请使用:

/\{[^{[]+\{[^{[]+\[\{[^{[]*("scanNumber":"[^"]+")/

由于json字段可能会更改其顺序,因此您应该使正则表达式更能容忍这些更改:


即使json字段的顺序不同,这也会起作用,但当然要保持结构

,因为json字段可能会改变其顺序。您应该让您的正则表达式更能容忍这些变化:


即使json字段的顺序不同,这也会起作用,但当然要保留第一次关闭时的结构

你真正想要的是:

.check(jsonPath("""$..scanNumber""").saveAs("scanNr")))
或者可能:

.check(jsonPath("""$.profile.memberships[0].scanNumber""").saveAs("scanNr")))
注意,这使用的是jsonPath,而不是正则表达式。在这方面,JsonPath应该比regex更可靠


查看以了解更高级的用法。

您第一次就接近了

你真正想要的是:

.check(jsonPath("""$..scanNumber""").saveAs("scanNr")))
或者可能:

.check(jsonPath("""$.profile.memberships[0].scanNumber""").saveAs("scanNr")))
注意,这使用的是jsonPath,而不是正则表达式。在这方面,JsonPath应该比regex更可靠

查看以了解更高级的用法