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

Scala 加特林。检查HTML结果是否包含某些字符串,scala,gatling,Scala,Gatling,我需要检查从服务器返回的HTML是否包含预定义字符串。如果是这样的话,就用一个错误来破坏测试 我不知道怎么做。一定是这样的: val scn = scenario("CheckAccess") .exec(http("request_0") .get("/") .headers(headers_0) .check(css("h1").contains("Access denied")).breakOnFailure() ) 我称这些功

我需要检查从服务器返回的HTML是否包含预定义字符串。如果是这样的话,就用一个错误来破坏测试

我不知道怎么做。一定是这样的:

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

我称这些功能为“包含”和“断开故障”。盖特林也有相似之处吗?

你可以写得非常简单,比如:

.check(css("h1", "Access denied").notExists)
如果您不确定H1,可以使用:

.check(substring("Access denied").notExists)    
IMO服务器应以正确的状态响应,因此:

.check(status.not(403))
请欣赏并查看详细信息

编辑: 我对CSS选择器的使用是错误的,请参阅Stephane Landelle的CSS解决方案。 我大部分时间都在使用子字符串:)

这里是解决方案

.check(css("h1").transform((s: String) => s.indexOf("Access denied"))
.greaterThan(-1)).exitHereIfFailed
更好的解决方案:

使用单个CSS选择器:

.check(css("h1:contains('Access denied')").notExists)
带子字符串:

.check(substring("Access denied").notExists)

注意:如果您要查找的内容只发生在响应负载中的一个位置,子字符串肯定更有效,因为它不必将其解析为DOM。

css(“h1”,“拒绝访问”)在h1标记内查找属性“拒绝访问”。是否可以在post后执行此检查?我能把这张支票连成一张“get”而不是一张“post”。。。谢谢