2016-02-24 39 views
0

编程Gatling性能测试如果从服务器返回的HTML包含预定义的字符串,则需要检查。它它确实打破了测试的错误。加特林。检查HTML结果是否包含字符串

我没有找到如何去做。它必须是这样的:

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

我称为希望的功能“包含”和“breakOnFailure”。加特林有类似的东西吗?

回答

1

这里IST解决

.check(css("h1").transform((s: String) => s.indexOf("Access denied")) 
.greaterThan(-1)).exitHereIfFailed 
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解决方案。 我使用的子方法的大部分时间:)

+0

css(“h1”,“Access denied”)在h1标签内寻找属性“Access denied”。 – 30thh

+0

对不起,你是对的。我会纠正答案。 – Teliatko

3

更好的解决方案:

与一个单一的CSS选择器:

.check(css("h1:contains('Access denied')").notExists) 

与子:

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

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

+0

是否可以在帖子后执行此检查?我能够将此支票链接到“获取”而不是“发布”......谢谢 –

相关问题