编程Gatling性能测试我需要检查,如果从服务器返回的HTML包含预定义的字符串。它确实如此,错误地打破了测试。
我没有发现如何做到这一点。必须是这样的:
val scn = scenario("CheckAccess")
.exec(http("request_0")
.get("/")
.headers(headers_0)
.check(css("h1").contains("Access denied")).breakOnFailure()
)
我打电话给希望的功能"包含"和" breakOnFailure"。 Gatling有类似的东西吗?
答案 0 :(得分:6)
更好的解决方案:
使用一个CSS选择器:
.check(css("h1:contains('Access denied')").notExists)
with substring:
.check(substring("Access denied").notExists)
注意:如果您要查找的内容仅发生在响应有效负载中的一个位置,则子字符串肯定更有效,因为它不必将其解析为DOM。
答案 1 :(得分:1)
这是解决方案
.check(css("h1").transform((s: String) => s.indexOf("Access denied"))
.greaterThan(-1)).exitHereIfFailed
答案 2 :(得分:0)
你可以写得很简单,如:
.check(css("h1", "Access denied").notExists)
如果您不确定H1,可以使用:
.check(substring("Access denied").notExists)
IMO服务器应以适当的状态响应,因此:
.check(status.not(403))
享受并查看http://gatling.io/docs/2.1.7/http/http_check.html了解详情
编辑: 我对CSS选择器的使用是错误的,请参阅使用CSS的Stephane Landelle解决方案。 我大部分时间都使用子串方式:)