Jmeter进行性能测试时,作为对上一个请求返回信息的校验,基本上断言是不可少的,今天主要介绍一下Jmeter的相应断言校验。
相应断言:即对服务器相应信息的校验判断,发送http请求后,对服务器返回内容从【要测试的相应字段】【模式匹配规则】【要测试的模式】等方面进行字符串匹配校验,如果返回的内容和我们期望的字符串相符合,则认为该次测试通过,反之失败。
相应断言添加:线程组-->右键添加-->断言-->相应断言,相应断言页面如下图所示:
断言应用范围
Main sample and sub-sample :作用于Main sample 和 sub-sample
Main sample only :作用于Main sample
Sub-sample only:作用于sub-sample
JMeter Variable:作用于JMeter变量
通常断言应用范围选择“Main sample only ”即可,因为一般来说发起一个请求,实际上就是一个请求,并没有Main sample 和 sub-sample的区别。只有在某些情况下,发起一个请求会触发多个服务器请求的时候,才会有Main sample 和 sub-sample的区别,类似ajax请求,另外如果发起重定向请求,并且勾选“跟随重定向”, 则把重定向后的请求视为main-sample。
相应字段
相应字段选择:相应文本,Document(Text),url样本,相应代码,相应信息,Response Header,ignore status
相应文本(Response):服务器返回的相应文本,包含HTTP头
Document(Text):
url样本:对Sample的url进行断言,如果请求没有重定向,则url则是请求的url;如果请求有重定向(且跟随重定向), 那么url则包括请求url和重定向url
相应代码(Response Code):指服务器返回状态码,如:200 ,404 ,500 ,如果代码为404和500时,jmeter默认该请求是失败的,所以需要勾选“ignore status”
相应信息(Response Message):指http相应代码对应的相应信息,如OK,Found,Not Found,Server Error
Response Header:相应头信息
ignore status:指示JMeter设置sampler status的初始状态为success。sample status是否成功,由已Response status和断言结果决定,当选中Ignore Status时,Response status被强制设置为success,不执行进一步的断言判断。仅第一次断言时使用
模式匹配规则
包括:返回文本中包括指定的表达式模式字符串,则为Tree,支持正则匹配
匹配:返回文本匹配指定的表达式模式字符串,则为Tree,支持正则匹配
Equals:返回文本等于指定的表达式模式字符串,则为Tree
Substring:返回文本中包括指定的表达式模式字符串,则为Tree,但不支持正则匹配
否:匹配非给定模式,即结果值取反
要测试的模式
填写可以测试的模式列表,每个模式都会单独测试,如果失败则停止执行之后的模式。
每个断言可以添加多个模式,等同于多个断言,没有断言只有一个模式。