Scala 加特林。检查HTML结果是否包含某些字符串
我需要检查从服务器返回的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() ) 我称这些功
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”。。。谢谢