前言

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. [Codeforces 425A] Sereja and Swaps

    [题目链接] https://codeforces.com/contest/425/problem/A [算法] 枚举最终序列的左端点和右端点 , 尝试用这段区间中小的数与区间外大的数交换 时间复杂度 ...

  2. ZOJ 3955 Saddle Point 校赛 一道计数题

    ZOJ3955 题意是这样的 给定一个n*m的整数矩阵 n和m均小于1000 对这个矩阵删去任意行和列后剩余一个矩阵为M{x1,x2,,,,xm;y1,y2,,,,,yn}表示删除任意的M行N列 对于 ...

  3. JSP:目录

    ylbtech-JSP:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech.c ...

  4. poj Find a multiple【鸽巢原理】

    参考:https://www.cnblogs.com/ACShiryu/archive/2011/08/09/poj2356.html 鸽巢原理??? 其实不用map但是习惯了就打的map 以下C-c ...

  5. Java中的抽象类详解,它存在的意义在哪里?

    学习抽象类前先理解下面这段话: 问你个问题,你知道什么是"东西"吗?什么是"物体"吗? "麻烦你,小王.帮我把那个东西拿过来好吗" 在生活中 ...

  6. 基于ASP.Net Core开发一套通用后台框架记录-(数据库设计(权限模块))

    写在前面 本系列博客是本人在学习的过程中搭建学习的记录,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 前期我不会公开源码,我想是一点点敲代码,不然复制.粘贴那就没意思了. ...

  7. 无法收集统计信息,怎样优化SQL。

    特殊情况如下 客户的统计信息是固定的,没办法收集统计信息 . SQL profile 是最后考虑方案,因为同样写法sql 比较多,几十条. Parallle 并行客户一般不考虑接受,OLTP 系统. ...

  8. 235 Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先

    给定一棵二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 详见:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-s ...

  9. [转]iOS WebKit browsers and auto-zooming form controls

    问题描述:https://github.com/jquery/jquery-mobile/issues/2581 本文转自:http://www.456bereastreet.com/archive/ ...

  10. 生成清除某个数据库下的所有表的SQL语句

    方法1:重建库和表 用mysqldump --no-data把建表SQL导出来,然后drop database再create database,执行一下导出的SQL文件: 方法2:生成清空所有表的SQ ...