加特林。检查HTML结果是否包含某些字符串

时间:2016-02-24 08:15:16

标签: scala gatling

编程Gatling性能测试我需要检查,如果从服务器返回的HTML包含预定义的字符串。它确实如此,错误地打破了测试。

我没有发现如何做到这一点。必须是这样的:

  val scn = scenario("CheckAccess")
    .exec(http("request_0")
      .get("/")
      .headers(headers_0)
      .check(css("h1").contains("Access denied")).breakOnFailure()
      )

我打电话给希望的功能"包含"和" breakOnFailure"。 Gatling有类似的东西吗?

3 个答案:

答案 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解决方案。 我大部分时间都使用子串方式:)