JMeter 检查点之响应断言(Response Assertion)
检查点之响应断言(Response Assertion)
by:授客 QQ:1033553122
JMeter断言用于对sampler(采样器)进行额外检查,且在相同作用域中,每执行完一个sample就会进行一次断言处理,为了确保断言仅作用于某个sample,把该sample添加为子sample。
测试环境
apache-jmeter-2.13
1. 添加响应断言
右键线程组->添加->断言->响应断言
2. 配置响应断言
说明:
Apply to:指定断言作用范围。
Main sample and sub-sample:作用于主main sample和子sub-sample
Main sample only:只作用于main sample
Sub-samples only:只作用于sub-sample
JMeter Variable:作用于JMeter变量
注意:
1、大多数情况下,可只勾选“main sample only”,因为一般情况下,发起一个请求,实际就只有一个请求。但是在某些情况下,发起一个请求时,会触发多个服务器请求,这时候就有main sample和sub-sample之分,类似ajax请求,另外,如果发起重定向请求,并且勾选“跟随重定向”, 则把重定向后的请求视为main-sample
2、如果sub-sample断言失败,但main sample断言成功,那么main sample也被设置为失败状态。如果作用域JMeter变量,且该变量关联main sample,那么如果断言失败,则main sample也被设置为失败(If the JMeter variable option is used, it is assumed to relate to the main sample, and any failure will be applied to the main sample only)。
3.如果执行完每个sampler的所有断言,变量JMeterThread.last_sample_ok会被设置为true或false
要测试的响应字段:
响应文本(Text Response) - 从服务器返回的响应文本,比如body,包含HTTP头
Document(text) -通过Apache Tika追踪的各种各种类型文档的文本
URL样本
响应代码(Response Code) - 比如 200
响应消息(Response Message) - 比如 OK
Response Headers - 响应头,包括Set-Cookie 头,如果有的话
Ignore Status - 指示JMeter设置sampler status的初始状态为success。sample status是否成功,由已Response status和断言结果决定,当选中Ignore Status时,Response status被强制设置为success,不执行进一步的断言判断。仅第一次断言时使用。
要测试的模式(Patterns to Test):
填写需要测试的模式列表(list of patterns)。 每个模式都单独测试,如果某个模式失败了,那将不会往下检查剩余的模式。添加一个断言,多个测试模式(通过重复点击面板的添加按钮来添加多个测试模式),和多个断言,每个断言一个模式是一样的
例:一个断言,多个测试模式
3. 查看断言结果
添加监听器:右键线程组-> 添加 -> 监听器 -> 断言结果
4. 例子
通常断言组织形式如下:
例子如下:
作者:授客
微信/QQ:1033553122
全国软件测试QQ交流群:7156436
Git地址:https://gitee.com/ishouke
友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!
作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!
微信打赏
支付宝打赏 全国软件测试交流QQ群
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库