JMeter必知必会系列(7) JMeter断言之响应断言

7.1 断言的定义

断言用于验证取样器请求或对应的响应数据是否返回了期望的结果。可以是看成验证测试是否预期的方法。

对于接口测试与性能测试来说,就是测试Request/Response,断言即可以针对Request进行,也可以针对Response进行。但大部分是对Response做断言。

JMeter常见的断言元件如下:

1.响应断言

2.JSON Assertion

7.2 响应断言

配置项

Apply to:

1.在大多数情况下,只有主取样器具有所有必需的响应数据。但是很多Web应用使用了Ajax,JQuery技术,

单个请求可以在内部产生多个子请求,并且每个请求都有其对应的响应数据。

比如请求某一个页面,页面里的js会调用其他请求。

2.在HTTP请求的高级设置的“Embedded Resources from HTML Files”项,

勾选了“Retrieve All Embedded Resources”,在发送请求时,会解析相关的嵌入资源,

也会导致取样器可能产生多个子取样器。

嵌入资源包括:images、applets、stylesheets、external scripts、frames/iframes、

background images、background sound等。

3.有重定向的请求,并且勾选了“Follow Redirects”,则主取样器为最后返回的URL请求,

第一次URL和重定向返回的所有URL请求为子取样器。

比如,使用http://www.sina.com/访问新浪,会有两次重定向:

第一次请求: GET http://www.sina.com/ 重定向返回: Location: http://www.sina.com.cn/

第二次请求: GET http://www.sina.com.cn/ 重定向返回: Location: https://www.sina.com.cn/

第三次请求: GET https://www.sina.com.cn/

主取样器为第三次请求;第一次,第二次与第三次请求为子取样器。

Main sample and sub-samples

范围包括主取样器与所有子取样器。

Main sample only

范围仅限于主取样器。

Sub-samples only

范围仅限于所有子取样器。

JMeter Variable Name to use

范围包括使用的JMeter变量。

Field to Test:

1.Text Response

响应正文。对于HTTP协议来说,是响应的message-body(不包括状态行与首部字段)

2.Response Code

响应代码。对于HTTP协议来说,是响应状态码,比如200、304、404等。

3.Response Message

响应消息。对于HTTP协议来说,是原因短语,比如OK、Not Modified、Not Found等。

4.Response Headers

响应首部字段。

5.Request Headers

请求首部字段。

6.URL Sampled

请求的URL。对于HTTP请求,若勾选了“Follow Redirects”,则包含重定向后的URL。

7.Document(text)

通过Apache Tika从各种类型的文档中提取文本。此选项开启也会严重影响性能,谨慎使用。

8.Request Data

请求数据。对于HTTP协议来说,是请求的message-body(不包括请求行与首部字段)

9.Ignore Status

通过将断言的结果与现有的响应状态相结合来确定取样器的总体成功。

当选择Ignore Status复选框时,将强制响应状态在计算断言之前是成功的。

HTTP协议在返回4xx和5xx的状态码默认是不成功的,勾选此项可用于在执行进一步检查之前设置状态成功。

请注意,这将具有清除任何以前的断言失败的效果,因此请确保只在第一个断言上开启此设置。

Pattern Matching Rules:

1.Contains

如果文本包含正则表达式模式,则为true

2.Matches

如果整个文本与正则表达式模式匹配,则为true

3.Equals

如果整个文本等于模式字符串(区分大小写),则为true

4.Substring

如果文本包含模式字符串(区分大小写),则为true

注意:

Contains和Matches模式支持Perl5类型的正则表达式;

Equals和Substring模式使用文本字符串,不支持正则表达式。

5.Not

对断言结果进行否定。

6.Or

将多个测试模式以逻辑“或”组合起来。

Patterns to Test:

要测试的模式列表。每个模式都是单独测试的。

如果模式失败,则不检查其他模式,

使用多个模式设置一个断言与使用每个模式设置多个断言之间没有区别(假设其他选项相同)。

Custom failure message:

自定义断言失败信息。即设置“Assertion failure message”的值。

对请求做断言

1.断言请求首部字段

在“要测试的响应字段"选择“Request Headers”

2.断言请求URL地址

分两种情况讨论:

(1)若在“HTTP Request”中勾选了“Follow Redirects”,

则断言对象包含请求URL,与重定向Location首部返回的URL,重定向若有多次,则包含每次返回的URL;

(2)若在“HTTP Request”中没有勾选“Follow Redirects”,

则断言对象只针对请求URL。

对响应做断言

1.断言响应首部字段

在“Field to Test”选择“Response Headers”

2.断言响应状态码

在“Field to Test”选择“Response code”

3.断言响应原因短语

在“Field to Test”选择“Response Message”

4.断言响应正文

在“Field to Test”选择“Text Response”

多模式断言

在“Patterns to Test”项中可以添加多个断言模式进行测试,多个模式可以使用“与”,“或”以及“非”进行逻辑组合:

1.逻辑与(and)

多个模式之间默认以“与(and)”进行逻辑组合

2.逻辑或(or)

当勾选了“Pattern Matching Rules”中的“Or”,则多个模式之间以“或(or)”进行逻辑组合

3.逻辑非(not)

当勾选了“Pattern Matching Rules”中的“Not”,则将每个模式Not后以“and”或“or”组合

假设有模式p1,p2,p3,… ,pn(优先级not > and > or)

(1)仅勾选“Not”

则相当于:(not p1) and (not p2) and (not p3) and … and (not pn)

(2)勾选“Not”与“Or”

相当于:(not p1) or (not p2) or (not p3) or … or (not pn)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容