Jmeter使用笔记之断言
前言
Jmeter的断言方式有很多种,由于在工作中经常做的是API接口测试,所以这篇文章主要介绍如何对接口的字段进行解析,如何对解析出来的字段的值断言
了解API接口
Restful API 规范
协议:采用http或者https协议
数据传输格式:采用json,而不用xml
url链接:url链接中,不能有动词,只能有名词,而且对于一些名词,如果出现复数,那么应该后面加上s。例如:获取文章列表,使用/articles/,而不使用/get_article/
http请求的方法:
- GET:从服务器上获取资源
- POST:在服务器上新创建一个资源
- PUT:在服务器上更新资源,(客户端提供所有改变后的数据)
- PATCH:在服务器上更新资源,(客户端只提供要改变的属性)
- DELETE:从服务器上删除资源
状态码
状态码 | 原生描述 | 描述 |
---|---|---|
200 | OK | 服务器成功响应客户端请求 |
400 | INVALID REQUEST | 用户发出的请求有误 |
401 | Unauthorized | 用户没有权限访问这个请求 |
403 | Forbidden | 由于某些原因,服务器禁止访问这个请求 |
404 | NOT FOUND | 用户请求的url不存在 |
406 | NOT Acceptable | 用户请求不被服务器接收(比如服务器期望客户端发送某个字段,但是没有发出) |
500 | Internal server error | 服务器内部错误 |
- 示例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的例子
- 示例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数据
- 安装插件JSON/YAML Plugins
打开插件管理器,搜索JSON,选中JSON/YAML Plugins 插件,点击Apply Changes and Restart Jmeter
,即可完成插件安装
- 解析返回的json数据
解析返回的code,用code去判断请求返回的是否正确
- 断言结果查看
需要添加 断言结果,如图是断言失败的情况(这里对token进行了断言,由于每一次返回的token都是不一样的,所以实际项目中不会对token进行断言,而是判断token是否返回成功,然后提取token以便其他接口使用):
查看结果树中也可以看到断言结果:
至此,一个完整的Http请求接口基本上算是完成了。
Jmeter使用基础系列文章大纲:
Jmeter使用基础笔记 - 认识Jmeter
Jmeter使用基础笔记 - 写一个http请求
Jmeter使用基础笔记 - 断言 - API接口返回数据断言
Jmeter使用笔记之断言的更多相关文章
- Udacity调试课笔记之断言异常
Udacity调试课笔记之断言异常 这一单元的内容不是很多,如Zeller教授所说,就是如何写.检查断言,并如何使用工具实现自动推导出断言的条件. 现在,多数的编程语言,尤其是高级编程语言都会有内置的 ...
- jmeter常用四种断言
jmeter常用四种断言 一.Response Assertion(响应断言)二.Size Assertion(数据包字节大小断言)三.Duration Assertion(持续时间断言)四.bean ...
- Jmeter(十)断言
断言是我们在做自动化测试中常用的一个功能,用于检查测试中响应数据是否符合预期. 使用断言的目的:在request的返回层面增加一层判断机制:因为request成功了,并不代表结果一定正确. 下面我们就 ...
- Jmeter接口之响应断言详解
响应断言 : 对服务器的响应进行断言校验 Apply to 应用范围: main sample and sub sample, main sample only , sub-sample only , ...
- 接口测试工具-Jmeter使用笔记(四:响应断言)
Jmeter中断言的类型有许多,我不在这里一一列举,只说下我用到的---响应断言. 作用:一个HTTP请求发出去,怎么判断执行的任务是否成功呢?通过检查服务器响应数据,是否返回预期想要的数据,如果是, ...
- Jmeter学习笔记(十三)——xpath断言
1.什么是XPath断言 XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力. Ap ...
- Jmeter学习笔记(十二)——断言
一.断言简介 jmeter中有个元件叫做断言(Assertion).用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 使用断言的目的:在request的返回层面 ...
- Jmeter学习笔记(九)——响应断言
Jmeter中又一个元件叫断言,用于检查测试中得到的响应数据等是否符合预期.断言又13种,目前在使用过程中使用到的是响应断言. 有时候请求成功了并不代表测试通过,还要看影响返回的内容是否符合预期的结果 ...
- Jmeter学习笔记ONE
最近想学一些关于性能测试方面的知识,其实之前已经初步了解了Jmeter工具,它是一个轻量级的性能测试工具,开源并且免费,相比于Loadrunner来说用起来更简便. JMeter 可以用于对服务器.网 ...
随机推荐
- 推理集 —— death
事故: 自杀: 他杀: 1. 跳楼 头向下死得比较快,没那么痛苦. 脚向下,不会立刻死亡,痛苦至极.死亡原因可能不是跳楼,而是失血过多而死 扑下去, 同头向下. 仰着跌下去,同头向下.. 跳楼最好头先 ...
- tomcat调优配置
今天遇到一个tomcat服务注册后配置Java参数没效果,最后在注册表中删除原来的tomcat服务后,顺便看了一下tomcat的调优配置,看别人总结的不错,就转载一下. Tomcat.Jetty.Gl ...
- JeePlus:代码结构
ylbtech-JeePlus:代码结构 1.返回顶部 1. 代码结构 1.文件结构 1.1.源码目录 src/main/javacom.jeeplus Jeeplus目录录├ common 公共模块 ...
- bzoj4506: [Usaco2016 Jan]Fort Moo(暴力)
4506: [Usaco2016 Jan]Fort Moo Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 145 Solved: 104[Submi ...
- MySQL-ProxySQL中间件(二)| Admin Schemas介绍
目录 MySQL-ProxySQL中间件(一)| ProxySQL基本概念: https://www.cnblogs.com/SQLServer2012/p/10972593.html ...
- Unity WebGL请求Http接口出现的Cors跨域问题
1.运行环境 (1)WebGL运行浏览器:Firfox Quantum 67.0(64位) (2)服务端API运行环境:IIS,.Net Core 2.1 API 2.问题:CORS 头缺少Acces ...
- 375 Guess Number Higher or Lower II 猜数字大小 II
我们正在玩一个猜数游戏,游戏规则如下:我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字.每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了.然而,当你猜了数字 x 并且猜错了的时候,你需 ...
- Angular JS中自定义标签 属性绑定的解释
看到自定义标签的文档时,文档作者解释的能力实在太弱,也可能是本人太笨,一下绕不过来. 看了一个stackoverflow答案,才算明白,在此贴出翻译,以供大家参考. .csharpcode, .csh ...
- [ SPOJ PT07J ] Query on a tree III
\(\\\) Description 其实这题才是正版的 Qtree3...... 给定 \(n\) 个点,以 \(1\) 号节点为根的树,点有点权. \(m\) 次询问 以 \(x\) 为根的子树内 ...
- firefox浏览器中 bootstrap 静态弹出框中select下拉框不能弹出(解决方案)
问题出现场景1: 在firefox浏览器中在bootstrap弹出的modal静态框中再次弹出一个静态框时 select下拉框不能弹出选项 解决方案:去掉最外层静态框的 tabindex=" ...