JMeter入门指南-3.断言的介绍与使用

3.断言的介绍与使用

3.1为什么要使用断言

在上一章JMeter入门指南-2.手动编写一个简单的请求性能测试中,我们对于一个请求进行接口测试,并没有对响应内容进行验证,简单来说,就是只验证了这个接口的联通性,并没有验证这个接口获取的准确性,而断言,则能很好的去验证数据的准确性。

那么,断言究竟要判断什么呢?

3.2如何使用断言

3.2.1查看响应数据

首先,现在JMeter中执行一次脚本,然后我们能在查看结果树中观察到我们的HTTP请求。

可以看到,这里有三个TAB页,分别是取样器结果,请求,响应数据

取样器结果:包含了取样器的一些响应结果,如响应头,响应代码,响应时间,响应大小等数据

请求:为本脚本模拟发送的请求

响应数据:为响应的具体数据,可能是HTML,JSON,XML,DOC等

图一

在响应数据页中,我们可以在响应体中观察响应具体返回的值

图二

请求1:对关键字【测试进行搜索】

图三
图四

请求2:网络超时

图五

请求3:对关键字【简书】进行搜索


图六


图七

可以发现,响应1与响应3都是请求成功,但是请求的结果并不是我们想要的结果,所以需要筛选关键字

3.2.2筛选关键字

在响应体中,一般都能已text格式来表示,此时我们只需要筛选出,本响应独特的,或者是唯一的关键字,来给断言使用。

就如上述三种请求,我们不难发现,我们需要筛选的关键字即为“简书”。

3.2.3添加响应断言

右键需要使用断言的HTTP请求,选择 添加->断言->响应断言


图八

Apply to:

关于此处,一般为Main sample only即可,当请求中有重定向请求时,最后跳转的页面没Main sample only,其余请求为Sub-samples only。

图九

响应文本:服务器响应文本,基本都用这个

响应代码:可以用于判断响应的各种代码    

[200 OK 请求成功],[301 Moved Permanently 永久跳转],[302 Found 临时跳转],[303 See Other GET重定向],[304 Not Modified 未修改,使用缓存],[400 Bad Request 请求语法错误],[401 Unauthorized 未授权],[403 Forbidden 禁止访问],[404 Not Found 找不到页面],[500 Internal Server Error 服务器程序错误],[502 Bad Gateway 网关错误],[503 Service Unavailable 服务不可用],[504 Gateway Timeout  服务器超时]

注意,如需要判断响应代码400,404等的错误代码,则需要勾选忽略状态。

一般测试字段都为这两个


图十

包含:返回的结果中包含需要匹配的值,支持正则表达式

匹配:返回的结果中与需要匹配的值相同,支持正则表达式

Equals:返回的结果中与需要匹配的值相同,不支持正则表达式

Substring:返回的结果中包含需要匹配的值,不支持正则表达式

否:若匹配成功则返回失败

或者:多个匹配字段只需要匹配成功一个即为通过

图十一

我们添加一个"简书"为断言:


图十二

这样就能使搜索条件为"测试"的HTTP请求判断为失败请求

图十三


图十四

3.2.3添加JSON断言

当HTTP请求得到的响应为JSON时,我们也可以使用JSON断言。

测试连接,本链接能得到一个基本的JSON响应


图十五

可以通过JSON转化器将其结构转化的方便观察


图十六

在这我创建了一个HTTP脚本,右键HTTP脚本,添加JSON断言,选择 添加->断言->JSON断言


图十七

Assert JSON Path exists:这个参数为需要匹配的JSON中的任意参数名称。

若需要获取content,则修改为$.content   (获取所有content) 

若需要获取A的所有子类,则修改为$..A(获取所有的所有子类)

若只需要获取A的第二个子类,则修改为$..A[1],

当然也可以这样写:$.content.data.allCitySearchLabels.A[1].id,这样便能获取所有A类第二个的ID

为请求添加个断言结果

先用$.content测试:

可以发现$.content能获取content下的所有内容。

图十八

$..A:

这个则为A下的所有id,name....的集合

图十九

$..A[1]:

则只获取了单个A

图二十

$.content.data.allCitySearchLabels.A[1].id:

获取单个ID

图二十一

Additionally assert value:勾选后可自己填写Expected Value

Match as regular expression :可以使用正则表达式

Expected Value:输入匹配的值

Expect null :匹配结果为null

Invert assertion (will fail if above conditions met):取反操作


图二十二

添加完成断言后,执行脚本,这样就能看到错误的请求

图二十三

后续还会陆续添加各种断言的使用。

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

推荐阅读更多精彩内容