赞
踩
在进行测试过程中,断言是一种关键组件,用于验证采样器(如HTTP请求)的响应数据是否符合预期。而“断言结果”监听器则是展示这些断言执行情况的重要工具,它帮助用户快速识别哪些断言通过或未通过,从而判断测试是否成功。
○ 名称:为监听器指定一个有意义的名称,便于识别。
○ Filename:如果需要将断言结果保存到文件,可以在这里指定文件路径和名称。不填则只在JMeter GUI中显示结果。
● 断言结果监听器会列出每个断言执行的详细情况,包括但不限于:
○ 样本标签:执行断言的取样器名称。
○ 断言名称:执行的具体断言类型。
○ 失败消息:如果断言未通过,会提供失败的原因或描述。
● 性能测试:在大规模性能测试中,利用“断言结果”监听器可以快速定位到那些因服务器响应不符合预期而导致的性能瓶颈或问题。
● 功能验证:在功能测试场景下,通过配置精确的断言和观察其结果,可以验证系统是否按预期工作。
● 自动化测试报告:通过将断言结果导出到文件,可以集成到持续集成/持续部署(CI/CD)流程中,生成详细的测试报告。
我们通过SpingBoot框架编写如下测试接口代码:
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
String response = "{\"total\":2,\"data\":[{\"id\":123,\"name\":\"John Doe\",\"email\":\"johndoe@example.com\",\"phone\":\"123-456-7890\",\"address\":{\"street\":\"123 Main St\",\"city\":\"New York\",\"state\":\"NY\",\"zip\":\"10001\"},\"interests\":[\"sports\",\"music\",\"travel\"]},{\"id\":456,\"name\":\"Jane Smith\",\"email\":\"janesmith@example.com\",\"phone\":\"987-654-3210\",\"address\":{\"street\":\"456 Elm St\",\"city\":\"Los Angeles\",\"state\":\"CA\",\"zip\":\"90001\"},\"interests\":[\"reading\",\"cooking\",\"hiking\"]}]}";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return response;
} else {
return response;
}
}
我们编写如下测试脚本
线程组:保持默认
HTTP信息头管理器:名称content-type,值为application/json;charset=UTF-8
HTTP请求:协议http,服务器名称或IP为127.0.0.1,端口设置为8091,方法为post,路径/login,内容编码为utf-8,消息体数据设置如下
{
"username": "admin",
"password": "password"
}
运行脚本,查看结果树,在HTTP请求的响应数据中Response Body查看结果如下:
{"total":2,"data":[{"id":123,"name":"John Doe","email":"johndoe@example.com","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"janesmith@example.com","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}
响应断言:测试字段选择响应文本,模式匹配规则选择包含,如上述返回消息内容可知有total字段,所以测试模式中添加输入total1字符,让这个查找的字段不存在
运行脚本,查看断言结果
● 定期检查:定期查看断言结果,及时调整断言设置或修复测试脚本中的问题。
● 区分监听器:为不同的测试目标或需求配置独立的断言结果监听器,保持结果的清晰可读。
● 优化输出:合理配置输出内容,避免不必要的信息干扰,特别是在进行大量测试时。
通过上述指南,你可以有效地使用JMeter的“断言结果”监听器来监控和分析测试执行过程中的断言情况,进而提升测试的效率与准确性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。