用JMeter添加请求后,请求如果返回状态码200,这只能代表请求成功了,但是返回结果是否正确还需要验证。
一、响应断言
点击请求—右键—Add ----Assertion—响应断言
Apply to:适用范围
Main sample only:初始默认选中项,主采样器
Sub-samples only:子采样器
Main sample and sub-samples:主采样器和子样器
Jmeter variable[]:Jmeter变量,断言是用来命名变量的内容
注:我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,可以触发多个服务器请求,类似于ajax那种,那么就有main sample 和 sub-sample之分了。
此外,对于有重定向的请求,并且勾选了“跟随重定向”, 那么这两个请求都是 sub-sample,重定向后的请求(第二个请求)就是main-sample
要测试的响应字段:
- 响应文本:服务器响应文本,一般普通http响应,都选中这个。
- URL样本:是对sample的url进行断言。如果请求没有重定向(302),那么就是这个就是请求url。 如果有重定向(且跟随重定向),那么url就包含请求url 和 重定向url
- 响应代码:http响应代码,如101,200,302,404,501等。但当我们要验证404,501等http响应代码时,需要勾选“ ignore status”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的。
- 响应信息:http响应代码对应的响应信息。
- Response Headers:响应头信息
- Ignore Statue:忽略对象
- Document(text):切Apache Tika 支持服务器响应,包括文本响应,还支持 PDF, Office, Audio, Video formats。jmeter会用Apache Tika 去解析服务器响应内容,会很耗内存,而且也很容易解析失败。所以一般普通http请求,不要选择这个。
模式匹配规则:
- 包括:返回结果包括指定的内容(即要测试模式内添加的内容)
注:模式的内容是一定要包含在要检查的请求页面内,否则会运行后会弹出:
Assertion error: false
Assertion failure: true - 匹配:返回结果与指定结果要匹配
- Equals:返回结果与指定结果一致
- Substring:返回结果是指定结果的字串
- 否:不进行匹配
二、BeanShell断言