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做接口测试相关推荐

  1. 怎样用postman做接口测试,一篇足矣

    常用的接口测试工具主要有以下几种: Postman: 简单方便的接口调试工具,便于分享和协作.具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档, ...

  2. post postman 传递数组对象_如何使用postman做接口测试

    一,接口测试是什么 什么是接口测试,不说广泛的概念,直接电脑打开浏览器,进入开发者工具(F12)随意进入一些网站可以看到下面左侧栏出现了一系列的数据: 上面条数据都是一个单独的接口,点击单个接口,右边 ...

  3. 如何用Postman做接口测试

    postman介绍&测试准备: postman介绍:postman是一个开源的接口测试工具,无论是做单个接口的测试还是整套测试脚本的拨测都非常方便. 前期准备:测试前,需要安装好postman ...

  4. 像postman上传文件_90%的测试工程师是这样使用Postman做接口测试的……

    postman介绍&测试准备 postman介绍:postman是一个开源的接口测试工具,无论是做单个接口的测试还是整套测试脚本的拨测都非常方便. 前期准备:测试前,需要安装好postman, ...

  5. Postman做接口测试设置断言

    断言:验证接口实际返回结果与预期结果(接口文档给出)的一致性. 要给接口测试做断言,首先得知道接口的返回数据是什么样的.所以,我们先来看一篇接口文档,地址:天气API-获取实况天气接口 分析完接口文档 ...

  6. 用postman做接口测试实例

    1.接口测试:针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性 2.接口测试流程: 1)获取接口信息:通过接口文档或抓包来获取接口的基本调用方 ...

  7. 年薪20W的自动化测试工程师教你用Postman做接口测试

    The higher your test coverage, the more flexible and bug-resistant your code will be, and the less t ...

  8. 使用postman做接口测试----柠檬不萌!

    目录 一.GET和POST请求的区别 二.http协议 1.http请求分为两个部分 2.http状态码 三.使用postman测试HTTP接口 1.请求方式:get 2.请求方式:post 3.请求 ...

  9. 如何使用postman做接口测试

    1.get请求传参 只要是get请求都可以在浏览器中直接发: 在访问地址后面拼  ?key=value&key=value 例如: 在浏览器中直接输入访问地址,后面直接拼需要传给服务器的参数 ...

最新文章

  1. 某程序员感叹自己学历虽低,却能进入阿里!虽然只是p6,却面过不少清北毕业生!清北毕业生也没什么了不起,水货一抓一大把!...
  2. android notification 定时显示,Android编程使用Service实现Notification定时发送功能示例...
  3. 引擎讲解2--主要是MyISAM和InnoDB的区别
  4. Eclipse新建Maven项目web.xml is missing and failOnMissingWebXml is set to true错误 pox.xml编译错误
  5. Linux echo命令:给文本着色/背景色/文本闪动
  6. FIND_IN_SET 精确查找
  7. 这个大部分CNS都会用到的技术分析流程大放送......
  8. 在Linux系统下载email,LINUX下安装U-MAIL邮件系统
  9. 不抛出异常的swap
  10. Oracle中for update和for update nowait的区别
  11. hp mfp scan点配置没有反应_HP LaserJet Pro MFP M125-M126,扫描文件HPScan不能用?
  12. 基于微信小程序的毕业设计题目(19)php菜谱美食小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  13. 三种视觉自动化检测的解决方案
  14. 计算机网络基本知识(二):网络拓扑结构
  15. 网络准入认证系统方案评估
  16. git如何安装aur_Linux┊一个好用的AUR工具yaourt | 简单.生活
  17. SM2 加解密注意事项
  18. 045:魔兽世界三(开战) 程序设计实习MOOC / 程序设计与算法(三)测验题汇总(2020春季) 已经结束
  19. 链表之反转链表,万金油的解题方法(java求解)
  20. 怎样让一个正常人理解“线性代数”

热门文章

  1. Kubernetes 学习总结(20)—— Kubernetes 与微服务和容器之间是什么关系?
  2. Myeclipse学习总结(10)——MyEclipse2014导入项目时The project was not built since its build问题
  3. Linux学习总结(26)——Shell常用命令总结
  4. 阿里巴巴开源技术汇总:115个软件(二)
  5. Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
  6. jsp中的url拼接的参数传递到controller乱码_Spring MVC中的拦截器
  7. android jni返回bitmap,JNI 层 Bitmap 转 OpenCV Mat
  8. MSSQL调优实战一 乱建聚集索引的后果
  9. ios 调用系统应用的方法 应用间跳转的方法
  10. Zxing 竖屏切换 android