用postman做接口测试
postman工具安装
官网下载 直接下一步安装就行(傻瓜式操作)
postman基本使用
以我目前下载的最新版8.6.1版本为例
进入首页
创建一个新的请求
create new 之后的页面是下图,目前还是以新建请求为主
这是新建的请求,默认的请求方法是get,可以换成其他的
collections和history用的最多
collections是集合,方便管理接口,可以给接口进行分类管理
history是历史,可以方便的查询到之前测过的接口
加号是新建集合。
一个项目分为好几个模块,比如首页、分类、个人信息等,可以一个模块中的接口放到一个集合里边,或者按其他的分类方式都可以
postman使用方法
只有接口没有参数时,key和value都不填。key是参数名,value是参数值
在响应体中快速查找你想找的内容
需要填参数时,和上面没有填参数的大概一样,只是在key和value的位置填了参数名和参数值
如下图 共有两个参数分别是用户名和密码
用户名username = 王昭君,密码pwd = 1
传入不同的参数响应体对应的结果也不相同
如果查询成功在响应体的位置会有成功的提示,查询失败也有失败的提示
拿到接口文档后怎么用postman进行测试?
1.根据接口文档进行对比,接口文档上的响应体和我查到的响应体是否一致
2.显示的内容是否和数据库中查到的内容是一致的
postman之断言
为什么要做断言?
为了看我们的响应是否正确,预期结果和实际结果是否一致,断言里写的是预期结果,Test Results是实际结果
断言一般是接口还没有通的时候把预期结果写上,一般在括号内写预期结果,接口通了直接发送就行
断言参数,在Pre-request中进行操作
断言响应,在Tests中进行操作
下图:断言响应
pm:代表对象,可以理解为postman
pm.test :先做一个测试
‘状态码显示200’:这个测试的名字(可以自己随便起,这句代码实际意思是响应时间是200ms以内)
所有标点符号都要用英文标点
function是一个函数(要创建一个函数)
{}内的是创建的具体内容
expect是一个方法,这个方法是去看我现在的响应返回的状态码是否是我想要的
因为我们是想要响应的状态,所以是pm.response
responseTime是响应时间
to.be.below()是要和哪个内容做对比
因为我们想要的是200ms以内,所以()内就是200
每句代码结束后要加分号
断言的就是状态是成功还是失败
Test Results是代表断言结果,一共有一条结果,一条成功
如果不知道函数里边代码怎么写也没关系,一般常用的代码postman里都会有,找到自己想要操作的内容,直接点击使用就行
Response body:Contains string
看响应体里是否包含你想要找的内容,是否匹配此字符串
pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("这里写你想要对比的内容");
});
Status code:Code is 200
看状态码是不是200
pm.test("Status code is 200", function () {pm.response.to.have.status(200);这里的200可以改成其他的状态码
});
Response body:JSON value check
检查json格式的内容是否正确
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100);//value是实际接口中的key,100是实际接口中的value,必须一致,一点也不能缺
});
postman之参数化
有两种方式
一种是文档参数化,另一种是变量参数化
变量参数化
指很多接口使用同样的一个内容
变量有两种方式,一种是环境变量,另一种是全局变量
环境变量是我选这个环境变量就使用这个环境变量,只要接口使用的是我当前选的环境变量就使用这个环境变量。范围小,选了才能用不选不能用
全局变量是我只要写了这个变量,就按照这个变量进行展示。范围大,不管选没选,只要有这个变量名就用这个变量
变量可以随便命名,我设置name的值为王佳,给环境变量名为王佳练习变量参数化
之前这里都是No Environment,我现在选择环境变量为王佳练习变量参数化,然后value的位置写成变量【注:要用两个大括号把变量括起来{{变量}}】然后再发送,查询出的结果和直接在value处写的值的结果是一样的
我在全局变量的位置再增加两个变量,名字同样都是name,当我选择之前设置的环境变量时,会自动出现环境变量,局部变量是浅灰色中间有道杠,就是用不了,是因为局部变量优先级更高
而当我选择了No Environment时,全局变量就是可以用的
不选择环境变量时如果参数的位置有变量,那么默认是全局变量
下面打印出来的日志就是我刚才在全局变量设置的name百里守约
把name设置成王佳,把pwd设置成1111,重新发送
这时可以看到全局变量也随之改变
文档参数化
同样的一个参数,想放不同的内容,比如名字name这个参数,参数内容是张三 李四 王五 赵六 等等,这样用文档参数化
文档格式一般有三种,txt,csv,json
先在桌面建一个文档,我建的是txt的
正式内容的上面一定要写参数名,因为文档参数化是要循环的,如果上面不写参数名第一排的数据就会成为抬头。
点击Run之后会出现下面的页面
运行之后如果都正确会出现下面的页面
postman之关联
什么是关联?
关联一般是多个接口之间进行操作
如果是一个固定的接口,并且内容也是固定的,没有说上一个接口的内容给下一个接口去使用,这就不需要关联
只有上一个接口的内容拿出来放到下一个接口去使用时才需要关联,只有当多个接口之间会产生联系(数据是变化的)才使用关联
关联一共有三种方式
JSON提取器,正则提取器,cookie提取器
JSON提取器
先正常操作你需要数据的那个接口
比如我这个是要获取到token的值(一个随机数,每次登陆token的值都不一样),然后在下一个接口中传入token这个参数
因为我之前已经拿到了token的值,并且存到了全局变量,所以这里直接设置为变量就行
正则提取器
这里需要懂正则表达式
实在不懂也没关系,用工具
正则自动生成器
点击加号,新建项目
然后下面的content括号里边的就是我的正则表达式啦
cookie提取器
三种方式本质都是去拿其值给别的接口使用,关键字不同而已
JSON:json.parse(getResponseBody)
正则 :ResponseBody.match(new RegExp……)
cookie:postman.getResponseCookie(’ ')
总结
最重要的三部分
断言 :
参数化 :
- 文档参数化:同样接口同样参数使用不同的数据
- 变量参数化:环境,全局(如果同时都有,环境优先级高,更多是不同接口使用相同数据)
关联:
- JSON
- 正则
- cookie
用postman做接口测试相关推荐
- 怎样用postman做接口测试,一篇足矣
常用的接口测试工具主要有以下几种: Postman: 简单方便的接口调试工具,便于分享和协作.具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档, ...
- post postman 传递数组对象_如何使用postman做接口测试
一,接口测试是什么 什么是接口测试,不说广泛的概念,直接电脑打开浏览器,进入开发者工具(F12)随意进入一些网站可以看到下面左侧栏出现了一系列的数据: 上面条数据都是一个单独的接口,点击单个接口,右边 ...
- 如何用Postman做接口测试
postman介绍&测试准备: postman介绍:postman是一个开源的接口测试工具,无论是做单个接口的测试还是整套测试脚本的拨测都非常方便. 前期准备:测试前,需要安装好postman ...
- 像postman上传文件_90%的测试工程师是这样使用Postman做接口测试的……
postman介绍&测试准备 postman介绍:postman是一个开源的接口测试工具,无论是做单个接口的测试还是整套测试脚本的拨测都非常方便. 前期准备:测试前,需要安装好postman, ...
- Postman做接口测试设置断言
断言:验证接口实际返回结果与预期结果(接口文档给出)的一致性. 要给接口测试做断言,首先得知道接口的返回数据是什么样的.所以,我们先来看一篇接口文档,地址:天气API-获取实况天气接口 分析完接口文档 ...
- 用postman做接口测试实例
1.接口测试:针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性 2.接口测试流程: 1)获取接口信息:通过接口文档或抓包来获取接口的基本调用方 ...
- 年薪20W的自动化测试工程师教你用Postman做接口测试
The higher your test coverage, the more flexible and bug-resistant your code will be, and the less t ...
- 使用postman做接口测试----柠檬不萌!
目录 一.GET和POST请求的区别 二.http协议 1.http请求分为两个部分 2.http状态码 三.使用postman测试HTTP接口 1.请求方式:get 2.请求方式:post 3.请求 ...
- 如何使用postman做接口测试
1.get请求传参 只要是get请求都可以在浏览器中直接发: 在访问地址后面拼 ?key=value&key=value 例如: 在浏览器中直接输入访问地址,后面直接拼需要传给服务器的参数 ...
最新文章
- 某程序员感叹自己学历虽低,却能进入阿里!虽然只是p6,却面过不少清北毕业生!清北毕业生也没什么了不起,水货一抓一大把!...
- android notification 定时显示,Android编程使用Service实现Notification定时发送功能示例...
- 引擎讲解2--主要是MyISAM和InnoDB的区别
- Eclipse新建Maven项目web.xml is missing and failOnMissingWebXml is set to true错误 pox.xml编译错误
- Linux echo命令:给文本着色/背景色/文本闪动
- FIND_IN_SET 精确查找
- 这个大部分CNS都会用到的技术分析流程大放送......
- 在Linux系统下载email,LINUX下安装U-MAIL邮件系统
- 不抛出异常的swap
- Oracle中for update和for update nowait的区别
- hp mfp scan点配置没有反应_HP LaserJet Pro MFP M125-M126,扫描文件HPScan不能用?
- 基于微信小程序的毕业设计题目(19)php菜谱美食小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
- 三种视觉自动化检测的解决方案
- 计算机网络基本知识(二):网络拓扑结构
- 网络准入认证系统方案评估
- git如何安装aur_Linux┊一个好用的AUR工具yaourt | 简单.生活
- SM2 加解密注意事项
- 045:魔兽世界三(开战) 程序设计实习MOOC / 程序设计与算法(三)测验题汇总(2020春季) 已经结束
- 链表之反转链表,万金油的解题方法(java求解)
- 怎样让一个正常人理解“线性代数”
热门文章
- Kubernetes 学习总结(20)—— Kubernetes 与微服务和容器之间是什么关系?
- Myeclipse学习总结(10)——MyEclipse2014导入项目时The project was not built since its build问题
- Linux学习总结(26)——Shell常用命令总结
- 阿里巴巴开源技术汇总:115个软件(二)
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- jsp中的url拼接的参数传递到controller乱码_Spring MVC中的拦截器
- android jni返回bitmap,JNI 层 Bitmap 转 OpenCV Mat
- MSSQL调优实战一 乱建聚集索引的后果
- ios 调用系统应用的方法 应用间跳转的方法
- Zxing 竖屏切换 android