浅谈断言之HTML断言
JMeter的HTML断言是一种用于验证响应数据是否包含预期HTML内容的功能。它通过比较响应中的HTML代码与用户定义的规则来判定请求是否成功。这对于确保Web应用返回的页面内容符合预期非常有用,尤其是在主动化测试和性能测试场景下。下面是一份关于如安在JMeter中配置和利用HTML断言的具体指南。
什么是HTML断言?
HTML断言是JMeter提供的一种断言类型,重要用于验证服务器响应中是否包含特定的HTML标签或文本内容。通过精确匹配或模式匹配的方式,它可以查抄响应数据是否符合预期的HTML结构或内容,从而判定请求是否成功执行。
何时利用HTML断言?
● 验证页面元素:当你需要确认网页上某个元素(如特定的文本、图片、链接等)是否存在时。
● 查抄页面结构:适用于需要验证页面的HTML结构是否正确,比如某个div标签是否被正确渲染。
● 功能回归测试:确保在进行软件更新或修改后,关键的HTML内容没有被意外更改或删除。
如何添加HTML断言?
- 打开JMeter测试计划:起首,打开或创建你的JMeter测试计划。
- 选择请求添加断言:在测试计划中,找到你想要添加断言的HTTP请求(或其他类型的请求),右键点击该请求,选择“添加” -> “断言” -> “HTML断言”。
- 配置HTML断言:添加后,你会看到HTML断言的配置界面。重要配置项包罗:
○ Tidy Settings:Tidy 环境配置,其中Tidy是一个基于HTML的语法查抄器以及打印工具,它可以将HTML转换为XML类型的文件。
○ Doctype:文档类型,通过下拉框选择不同文档类型,其中 omit表示疏忽遗漏、auto表示动态,strict表示严格以及loose)
○ Format:文件格式,通过选择HTML/XHTML/XML三种类型的文件格式来查抄返回内容
○ Errors only:误差校正,勾选该选项,则可以忽略Warning,此时只对误差进行统计查抄;如果返回内容的查抄结果凌驾指定命据,则断言失败。
○ Error threshold:误差/错误范围,填写最大的接受值
○ Warning threshold:告诫范围,填写最大的接受值
○ 将JTidy陈诉写入文件:写入JTidy陈诉的文件路径,JTidy是Tidy的一个java移植,可明白为一个处理HTML文件的DOM解析器
应用实例
起首我们利用SpringBoot框架编写一段测试代码接口
- //html
- @GetMapping(value = "/html",produces = "application/html")
- public String Returnhtml() {
- return "<!DOCTYPE html>\n" +
- "<html lang="en">\n" +
- "<head>\n" +
- " <meta charset="UTF-8">\n" +
- " <title>简单表单提交界面</title>\n" +
- "</head>\n" +
- "<body>\n" +
- " <h1>欢迎来到我们的简易表单</h1>\n" +
- " <form action="/submit_form" method="post">\n" +
- " <label for="name">姓名:</label>\n" +
- " <input type="text" id="name" name="name"><br><br>\n" +
- " <label for="email">电子邮件:</label>\n" +
- " <input type="email" id="email" name="email"><br><br>\n" +
- " <label for="message">消息:</label>\n" +
- " <textarea id="message" name="message"></textarea><br><br>\n" +
- " <input type="submit" value="提交">\n" +
- " </form>\n" +
- "</body>\n" +
- "</html>";
- }
复制代码 我们编写如下脚本:
线程组:保持默认
HTTP信息头管理器:名称设置为accept,值为application/html
HTTP请求:协议设置为http,服务器名称或IP设置为127.0.0.1,端口设置为8091,方法设置为GET,路径设置为/html,内容编码为utf-8
HTML断言:Doctype设置为auto,Format选择auto,勾选Errors only,Error threshold为0,将JTidy陈诉写入文件,路径设置为:C:\Users\XXXX\Desktop\test.txt
运行结果,检察结果树中是否成功,http请求断言成功,不显示断言的结果
但是打开生存的路径中的内容信息可以得到如下陈诉
line 4 column 5 - Warning: lacks “content” attribute
InputStream: Doctype given is “”
InputStream: Document content looks like HTML 4.01 Transitional
1 warning, no errors were found!
注意事项
● 性能影响:利用HTML断言会增加每个采样的处理时间,特别是在利用复杂正则表达式时。因此,在大规模性能测试中应谨慎利用。
● 精确性与机动性:正则表达式的利用可以提高匹配的机动性,但同时也要求更高的编写精确度,避免误报或漏报。
● 响应编码:确保考虑响应的字符编码,特别是当断言涉及到非ASCII字符时,大概需要调整JMeter的编码设置以正确处理响应数据。
总结
通过合理配置和运用HTML断言,你可以有效地验证Web应用的响应内容,确保其按照预期工作,提升测试的准确性和效率。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |