Jmeter断言-响应断言-判断预期结果和执行结果一致
jmeter中有个元件叫做断言(Assertion),它的作用和Loadrunner中的检查点类似;用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。
使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。所以通过断言,我们不再会被200所迷惑,而是可以通过断言,看到我们请求是否真正的成功!
通过添加-断言--响应断言;还需要在监听器-断言结果,才能在执行后查看断言结果是否正确。(主要是用来调试,真正执行压力测试时候,断言禁用。)
绿色代表断言通过,红色代表断言失败。
一、认识响应断言
1. Apply to
断言可以应用于主样本,子样本或者两者。默认断言是第二个,断言应用于主样本。
(1) Main sample and sub-samples:主样本和子样本
(2) Main sample only:仅主样本,注意:通常发出一个请求只触发一个请求,所以勾选“main sampie only”就可以;若发一个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了,默认使用主样本
(3) Sub-samples only:仅子样本
(4) JMeter Variable Name to use:JMeter使用变量名字,断言将应用于命名变量的内容
2.测试字段(field to Test ):
(1)响应文本:响应服务器返回的文本内容,http协议排除header部分(一般的http响应,都勾选“响应文本”)
(2)响应代码:匹配响应代码,比如http请求中‘200’代表成功
(3)响应信息:匹配响应信息,处理成功返回‘成功’或者“ok”字样
(4)响应头: 匹配响应头部中的信息
(5)请求头: 匹配请求头部中的信息
(6)URL样本: 对取样器的URL进行断言
(7)断言文档: 从各种类型的文件通过Apache Tika提取文本
(8)忽略状态: 指示JMeter设置sampler status的初始状态为success。sample status是否成功,由已Response status和断言结果决定,当选中Ignore Status时,Response status被强制设置为success,不执行进一步的断言判断。仅第一次断言时使用
(9)请求数据: 对请求的数据断言

举个栗子:
(1)响应文本
(2)响应代码
3.匹配规则(Pattern Matching Rules):
(1)包括: 若文本包含正则表达式模式,则断言成立;(部分匹配),支持正则匹配
(2)匹配: 若整个文本与正则表达式模式匹配,则断言成立;(全部匹配,普通字符串,非正则表达式)。与(3)相等Equals几乎一样,都是断言要和返回值完全一致。不同的是,这里支持正则,写正则表达式时,正则表达式也要完全和返回值匹配,才能够通过
(3)相等: 若整个文本与模式字符串相同(区分大小写), 则断言成立;(全部匹配),返回结果与你指定断言完全一致,不支持正则匹配。注意是完全一致,这个只有一个特殊情况会用到,一般很少用
(4) 字符串: 若文本包含模式字符串(区分大小写),则断言成立;(部分匹配,普通字符串,非正则表达式)。与(1)包括功能类似,不同点为,不支持正则匹配
(5) 否:就相当于取反。 如果断言结果为true,勾选“否”后,最终断言结果为false。如果断言结果为false,勾选“否”后,则最终断言结果为 true
(6)或者: 复选框项, 如果不想用AND连接(所有的模式都必须匹配,断言才算成功),用OR选项可以用于将多个断言模式进行OR连接(只要一个模式匹配,断言就是成功的)。可以为多个值,可在下面,例如一个断言里面可能有两个不同的判断值,可以选中去用,当满足一个要求的时候,就算成功。这个功能还是可以多用的


(2)匹配
(3)相等
(4)字符串
(5)否
4、测试模式(Patterns to Test)
测试模式:输入结果期望值(空格要去掉),可参数化
5、自定义失败信息(Custom failure message)
断言失败时发送的信息,可查看结果树查看到

如果断言失败,直接显示失败信息
二、使用响应断言
1.接口文档查看预期结果,添加监听器
2.断言成功;执行用例,通过则为绿色。
3.断言失败;执行用例,断言不一致(失败)则为红色。