前言

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. 【单独编译使用WebRTC的音频处理模块 - android】

    更新 [2015年2月15日] Bill 这段时间没有再关注 WebRTC 以及音频处理的相关信息,且我个人早已不再推荐单独编译 WebRTC 中的各个模块出来使用.实际上本文的参考价值已经很小了,甚 ...

  2. 使用Google的Closure Compiler,在本机上压缩javascript

    2011-12-05 13:47:39   1.JAVA JDK下载地址: http://download.oracle.com/otn-pub/java/jdk/7u1-b08/jdk-7u1-wi ...

  3. Unity ScriptObject

    http://godstamps.blogspot.com/2012/02/unity-3d-scriptableobject-assetbundle.html http://ivanozanchet ...

  4. Avito Code Challenge 2018 A~E

    A. Antipalindrome 还以为是什么神dp结果就是分情况讨论啊 原串是一串一样的字符的话输出0,是回文串的话输出n-1,否则直接输出原串长度 #include<iostream> ...

  5. 10.24afternoon清北学堂刷题班

    /* 这是什么题... */ #include<iostream> #include<cstdio> #include<cstring> #include<q ...

  6. 解方程 2014NOIP提高组 (数学)

    解方程  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description 输入描述 Input Description 输入文 ...

  7. 在 Vue 项目中(vue-cli2,vue-cli3)使用 pug 简化 HTML 的编写

    使用 pug 的原因: 使得 HTML 写起了来更加清晰和快捷 用法: Vue 的用法没有变化: <template lang="pug"> transition(na ...

  8. JavaScript--编程练习2

    制作一个跳转提示页面: 要求: 1. 如果打开该页面后,如果不做任何操作则5秒后自动跳转到一个新的地址,如慕课网主页. 2. 如果点击“返回”按钮则返回前一个页面. 效果: 注意: 在窗口中运行该程序 ...

  9. S - Cyclic Components (并查集的理解)

    Description You are given an undirected graph consisting of nn vertices and mm edges. Your task is t ...

  10. 如何上传文件到 github

    1. 下载并安装 Git 2. 打开命令窗口:Git Bash Here 3. 在 github.coding 等上新建项目,并复制地址,如:https://git.coding.net/wangzh ...