前言

Jmeter的断言方式有很多种,由于在工作中经常做的是API接口测试,所以这篇文章主要介绍如何对接口的字段进行解析,如何对解析出来的字段的值断言

了解API接口

Restful API 规范

  1. 协议:采用http或者https协议

  2. 数据传输格式:采用json,而不用xml

  3. url链接:url链接中,不能有动词,只能有名词,而且对于一些名词,如果出现复数,那么应该后面加上s。例如:获取文章列表,使用/articles/,而不使用/get_article/

  4. http请求的方法:

    1. GET:从服务器上获取资源
    2. POST:在服务器上新创建一个资源
    3. PUT:在服务器上更新资源,(客户端提供所有改变后的数据)
    4. PATCH:在服务器上更新资源,(客户端只提供要改变的属性)
    5. DELETE:从服务器上删除资源
  5. 状态码

状态码 原生描述 描述
200 OK 服务器成功响应客户端请求
400 INVALID REQUEST 用户发出的请求有误
401 Unauthorized 用户没有权限访问这个请求
403 Forbidden 由于某些原因,服务器禁止访问这个请求
404 NOT FOUND 用户请求的url不存在
406 NOT Acceptable 用户请求不被服务器接收(比如服务器期望客户端发送某个字段,但是没有发出)
500 Internal server error 服务器内部错误
  1. 示例1:

    url:
    /api/get-token/ method:
    POST Headers:
    app_version: 2.8.6
    Content-Type: application/json
    os_platform: ios
    user_agent: iOS/10.3
    device_sn: FwgRiO7CNA50DSU body:
    {"sign": "958a05393efef0ac7c0fb80a7eac45e24fd40c27"} response:
    {
    "success": true,
    "token": "qba756V9z6rOYOVH"
    }

这个示例中基本符合restful api接口规范,但是在实际开发中response基本不会这样写,下面的例子是实际开发中response的例子

  1. 示例2:

    url:
    /user/accessToken/ method:
    POST Headers:
    app_version: "2.8.6"
    Content-Type: "application/json"
    os_platform: "ios"
    user_agent: "iOS/10.3"
    device_sn: "FwgRiO7CNA50DSU"
    platform_id: "" body: {
    "email": "********@qq.com",
    "timestamp": "" # 时间戳一般13位
    "sign": "958a05393efef0ac7c0fb80a7eac45e24fd40c27"
    } response: {
    "code": "",
    "data": {
    "token": "qba756V9z6rOYOVH"
    },
    "message": "操作成功",
    "success": True
    }
这个例子当中,response返回的json数据就比较规范。code|message|success 这3个字段一般是不会变的。

1. code 接口返回的状态码,包括成功的和失败的,设计的时候会有一个状态码对照表,对照code,就可以知道返回的message文案
2. message 接口返回的状态码的说明,包括成功的和失败的

断言返回的Json数据

  1. 安装插件JSON/YAML Plugins
    打开插件管理器,搜索JSON,选中JSON/YAML Plugins 插件,点击Apply Changes and Restart Jmeter,即可完成插件安装

  2. 解析返回的json数据
    解析返回的code,用code去判断请求返回的是否正确

  1. 断言结果查看
    需要添加 断言结果,如图是断言失败的情况(这里对token进行了断言,由于每一次返回的token都是不一样的,所以实际项目中不会对token进行断言,而是判断token是否返回成功,然后提取token以便其他接口使用):

查看结果树中也可以看到断言结果:


至此,一个完整的Http请求接口基本上算是完成了。

Jmeter使用基础系列文章大纲:
Jmeter使用基础笔记 - 认识Jmeter
Jmeter使用基础笔记 - 写一个http请求
Jmeter使用基础笔记 - 断言 - API接口返回数据断言

Jmeter使用笔记之断言的更多相关文章

  1. Udacity调试课笔记之断言异常

    Udacity调试课笔记之断言异常 这一单元的内容不是很多,如Zeller教授所说,就是如何写.检查断言,并如何使用工具实现自动推导出断言的条件. 现在,多数的编程语言,尤其是高级编程语言都会有内置的 ...

  2. jmeter常用四种断言

    jmeter常用四种断言 一.Response Assertion(响应断言)二.Size Assertion(数据包字节大小断言)三.Duration Assertion(持续时间断言)四.bean ...

  3. Jmeter(十)断言

    断言是我们在做自动化测试中常用的一个功能,用于检查测试中响应数据是否符合预期. 使用断言的目的:在request的返回层面增加一层判断机制:因为request成功了,并不代表结果一定正确. 下面我们就 ...

  4. Jmeter接口之响应断言详解

    响应断言 : 对服务器的响应进行断言校验 Apply to 应用范围: main sample and sub sample, main sample only , sub-sample only , ...

  5. 接口测试工具-Jmeter使用笔记(四:响应断言)

    Jmeter中断言的类型有许多,我不在这里一一列举,只说下我用到的---响应断言. 作用:一个HTTP请求发出去,怎么判断执行的任务是否成功呢?通过检查服务器响应数据,是否返回预期想要的数据,如果是, ...

  6. Jmeter学习笔记(十三)——xpath断言

    1.什么是XPath断言 XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力. Ap ...

  7. Jmeter学习笔记(十二)——断言

    一.断言简介 jmeter中有个元件叫做断言(Assertion).用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 使用断言的目的:在request的返回层面 ...

  8. Jmeter学习笔记(九)——响应断言

    Jmeter中又一个元件叫断言,用于检查测试中得到的响应数据等是否符合预期.断言又13种,目前在使用过程中使用到的是响应断言. 有时候请求成功了并不代表测试通过,还要看影响返回的内容是否符合预期的结果 ...

  9. Jmeter学习笔记ONE

    最近想学一些关于性能测试方面的知识,其实之前已经初步了解了Jmeter工具,它是一个轻量级的性能测试工具,开源并且免费,相比于Loadrunner来说用起来更简便. JMeter 可以用于对服务器.网 ...

随机推荐

  1. va_start和va_end使用详解(转载)

    转自:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html 本文主要介绍va_start和va_end的使用及原理. 在以前 ...

  2. 乐搏讲自动化测试- Python自动化测试前景怎么样(4)

    Python言语还能够写爬虫,但仅仅只是爬虫的入门罢了.通过Python入门爬虫比较简略易学,不需要在一开始把握太多太根底太底层的常识就能够很快上手,而且很快能够做出成果,十分合适小白一开始想做出点看 ...

  3. Java多线程(九) synchronized 锁对象的改变

    public class MyService { private String lock = "123"; public void testMethod() { synchroni ...

  4. NET 编程题

    1.C#编写创建一个线程的代码 using System; using System.IO; using System.Threading ; class MyThread{ public int c ...

  5. ASP.NET SQL 总结

    1.SQLSERVER服务器中,给定表 table1 中有两个字段 ID.LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句 ...

  6. 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 Overlapping Rectangles

    There are nn rectangles on the plane. The problem is to find the area of the union of these rectangl ...

  7. CodeForces - 7D Palindrome Degree

    最近接触了一点字符串算法,其实也就是一个简单的最大回文串算法,给定字符串s,求出最大字符串长度. 算法是这样的, 用'#'将s字符串中的每个字符分隔,比如s = "aba",分割后 ...

  8. LIS UVA 10534 Wavio Sequence

    题目传送门 题意:找对称的,形如:123454321 子序列的最长长度 分析:LIS的nlogn的做法,首先从前扫到尾,记录每个位置的最长上升子序列,从后扫到头同理.因为是对称的,所以取较小值*2-1 ...

  9. 解决前后端分离的“两次请求”引出的Web服务器跨域请求访问问题的解决方案

    在前后端分离的项目中,前端和后端可能是在不同的服务器上,也可以是Docker上,那就意味着前端请求后端Restful接口时,存在跨域情况. 后端在做了通用的跨域资源共享CORS设置后,前端在做ajax ...

  10. VMware workstation 14 CentOs 7.5.1804 虚拟机网卡设置为NAT模式并设置固定IP

    一.背景知识     虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3. ...