美文网首页工具癖
JMeter入门指南-3.断言的介绍与使用

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

作者: X_Bellamy | 来源:发表于2018-10-25 10:25 被阅读130次

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):取反操作

图二十二

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

图二十三

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

相关文章

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

    3.断言的介绍与使用 3.1为什么要使用断言 在上一章JMeter入门指南-2.手动编写一个简单的请求性能测试中,...

  • 12. Jmeter-断言

    jmeter-断言介绍与使用 性能测试中较少用到断言。断言会增加脚本执行时间,但是接口测试中断言是必备的。什么是断...

  • Jmeter 压测 HTTP

      上一篇文章[关于Jmeter]介绍了Jmeter入门相关的知识。本文是实战篇,讲讲如何使用Jmeter对 Ht...

  • HTTPClient带cookie的get请求

    1.需求说明在使用jmeter时,需要使用beanshell进行响应断言,由于jmeter没有debug功能,编写...

  • jmeter专题

    一、jmeter入门 1. 一个jmeter必备的基本元素 线程组 http请求 响应断言 察看结果树 2. ht...

  • 2018-08-08

    一、jmeter入门 1. 一个jmeter必备的基本元素 线程组 http请求 响应断言 察看结果树 2. ht...

  • 2018-08-08 Jmeter学习

    一、jmeter入门 1. 一个jmeter必备的基本元素 线程组 http请求 响应断言 察看结果树 2. ht...

  • 2018-08-08

    一、jmeter入门 1. 一个jmeter必备的基本元素 线程组 http请求 响应断言 察看结果树 2. ht...

  • Jmeter实战(二)断言响应

    对响应添加断言 对于每个测试用例,应当有过程与期望结果;使用 Jmeter 做接口测试时,也应当添加断言以获得测试...

  • 【JMeter】JSON断言中的JSON Path

    【JSON Assertion】就是JMeter断言中的JSON断言。此组件允许对JSON文档执行验证。它在使用过...

网友评论

本文标题:JMeter入门指南-3.断言的介绍与使用

本文链接:https://www.haomeiwen.com/subject/wzqqtqtx.html