jmeter响应断言
2017-07-23 11:25
127 查看
jmeter提供了很多种断言,本文我就介绍下我们经常使用的响应断言!
响应断言 :对服务器的响应进行断言校验
[b](1)、应用范围Apply to : Main sample and sub-samples,Main sample only , Sub-samples only ,Jmeter Variable 一共4种[/b]
a、关于应用范围,我们大多数勾选“[b],Main sample only[/b]” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,可以触发多个服务器请求,类似于ajax那种,那么就有main sample 和 sub-sample之分了
b、此外,对于有重定向的请求,并且勾选了“跟随重定向”, 那么这两个请求都是 sub-sample,重定向后的请求(第二个请求)就是main-sample
关于Main sample and Sub samples,这里不做介绍了,有心的同学自己网上查查
(2)、响应字段: 响应文本,[b]响应代码,[b]响应信息,[b]Response Headers,Request Headers,URL[b]样本,[/b][/b][/b]Document(Text),Ignore Status 一共8种[/b]
a、响应文本: 服务器响应文本,一般普通http响应,都勾选这个
[b] [/b]b、响应代码:http响应代码,如101,200,302,404,501等。但当我们要验证404,501等http响应代码时,需要勾选“ Ignore Status”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的
c、响应信息:http响应代码对应的响应信息,例如:OK, Found
HTTP/1.1 200 Ok
HTTP/1.1 302 Found
d、Response Headers : 响应头信息,例如
Cache-Control:private
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:84
Content-Type:text/html;charset=utf-8
Date:Sun, 23 Jul 2017 03:08:43 GMT
Expires:Sun, 23 Jul 2017 03:08:43 GMT
Server:BWS/1.0
Vary:Accept-Encoding
e、Request Headers :请求头信息,例如
Accept:text/plain, */*; q=0.01
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Cookie:XXX
Host:www.baidu.com
Referer:https://www.baidu.com/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
X-Requested-With:XMLHttpRequest
(3)、模式匹配规则 包括、匹配、Equals、Substring、否、或者
a、包括:返回结果包括你指定的内容,支持正则匹配
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、success 2、[a-z]+
当返回值为:{"msg":"login success."} , 这两个断言都是ok的,返回true
b、匹配:
(1) 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同
(2) 正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、{"msg":"login success."} 2、\{"msg":"[a-z]+ success\."\} , 3、[a-z]+
当返回值为:{"msg":"login success."} ,断言1 2 是ok的, 断言3是false
原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。
c、Equals : 返回结果与你指定断言完全一致
d、SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、success 2、[a-z]+
当返回值为:{"msg":"login success."} , 断言1返回true, 但断言2返回false
e、否:就相当于取反。 如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true。
f、或者:这个我目前还不清楚 我基本不用
响应断言 :对服务器的响应进行断言校验
[b](1)、应用范围Apply to : Main sample and sub-samples,Main sample only , Sub-samples only ,Jmeter Variable 一共4种[/b]
a、关于应用范围,我们大多数勾选“[b],Main sample only[/b]” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,可以触发多个服务器请求,类似于ajax那种,那么就有main sample 和 sub-sample之分了
b、此外,对于有重定向的请求,并且勾选了“跟随重定向”, 那么这两个请求都是 sub-sample,重定向后的请求(第二个请求)就是main-sample
关于Main sample and Sub samples,这里不做介绍了,有心的同学自己网上查查
(2)、响应字段: 响应文本,[b]响应代码,[b]响应信息,[b]Response Headers,Request Headers,URL[b]样本,[/b][/b][/b]Document(Text),Ignore Status 一共8种[/b]
a、响应文本: 服务器响应文本,一般普通http响应,都勾选这个
[b] [/b]b、响应代码:http响应代码,如101,200,302,404,501等。但当我们要验证404,501等http响应代码时,需要勾选“ Ignore Status”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的
c、响应信息:http响应代码对应的响应信息,例如:OK, Found
HTTP/1.1 200 Ok
HTTP/1.1 302 Found
d、Response Headers : 响应头信息,例如
Cache-Control:private
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:84
Content-Type:text/html;charset=utf-8
Date:Sun, 23 Jul 2017 03:08:43 GMT
Expires:Sun, 23 Jul 2017 03:08:43 GMT
Server:BWS/1.0
Vary:Accept-Encoding
e、Request Headers :请求头信息,例如
Accept:text/plain, */*; q=0.01
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Cookie:XXX
Host:www.baidu.com
Referer:https://www.baidu.com/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
X-Requested-With:XMLHttpRequest
(3)、模式匹配规则 包括、匹配、Equals、Substring、否、或者
a、包括:返回结果包括你指定的内容,支持正则匹配
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、success 2、[a-z]+
当返回值为:{"msg":"login success."} , 这两个断言都是ok的,返回true
b、匹配:
(1) 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同
(2) 正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、{"msg":"login success."} 2、\{"msg":"[a-z]+ success\."\} , 3、[a-z]+
当返回值为:{"msg":"login success."} ,断言1 2 是ok的, 断言3是false
原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。
c、Equals : 返回结果与你指定断言完全一致
d、SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串
例如:
响应字段为: 响应文本
模式匹配规则:匹配
断言为:1、success 2、[a-z]+
当返回值为:{"msg":"login success."} , 断言1返回true, 但断言2返回false
e、否:就相当于取反。 如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true。
f、或者:这个我目前还不清楚 我基本不用
相关文章推荐
- 【转】Jmeter笔记:响应断言详解
- Jmeter笔记:响应断言详解
- Jmeter笔记:响应断言详解
- Jmeter 响应断言源码解析
- <续>jmeter随笔(12)--定制json响应结果断言
- jmeter bean shell断言加密的响应信息(加密接口测试二)
- JMeter之断言 - 响应文本
- Jmeter响应断言的使用
- Jmeter之响应断言
- Jmeter源码之响应断言分析(六)
- Jmeter笔记:响应断言详解
- Jmeter断言-响应断言
- JMeter 测试过程中的响应断言以及断言结果
- Jmeter--响应断言
- Jmeter 快速入门教程(三-1) --添加响应断言(即loadrunner中所指的检查点)
- Jmeter 快速入门教程(三)--添加响应断言
- jmeter bean shell断言加密的响应信息(加密接口测试二)
- Jmeter断言中判断请求失败的响应代码问题
- Jmeter—4 添加断言 判断响应数据是否符合预期
- JMeter学习-007-JMeter 断言实例之一 - 响应断言