Postman
接口
接口测试-发什么回什么->https://postman-echo.com/post
接口简介
接口:就是软件提供给外部的一种服务。用作数据传输。 在硬件方面USB、投影机被称为接口,在软件方面统称API,如微信的支付和提现。(统称鉴权码,有token、key、appkey)
内部接口:开发人员自己开发的对自身系统提供的接口
外部接口:开发系统调用外部的,微信、支付宝,其它的接口
接口测试的本质:就是测试接口能否正常的交互数据,权限控制以及异常场景。
软件为什么需要接口
因为接口能够让内部的数据被外部进行修改
为什么要做接口测试
- 现在很多系统都是前后端分离,开发的进度不一样,需要把一开始开发出来的接口进行测试
- 基于安全考虑,前端有验证很容易绕过,直接请求接口
- 测试推崇的是测试左移,即尽早测试。
接口测试的简介和分类
接口测试就是测试系统组件接口之间的一种测试
分类:
- 测试外部接口:测试被测系统和外部系统之间的接口(只需要测试正例即可)
- 测试内部接口:
- 内部接口只提供给内部系统使用。(预算系统,承保系统)(只需要测试正例即可)
- 内部接口提供给外部系统使用(测试必须非常全面)
接口测试的流程以及用例的设计
- 拿到接口api文档(通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,入参,码
- 编写接口用例以及评审
- 使用接口测试工具Postman实现接口测试
- Postman-+Newman+Jenkins实现持续集成,并且输出测试报告并且发送邮件,并且输出测试报告并且发送邮件
接口返回数据和JSON详解
- json格式:三组数据
- {error_code:0,msg:”0”,data:[]}
- error_code:错误码
- msg:对错误码的中文说明
- data:真正的返回的数据
- jsonj就是一种数据类型,整形,小数,字符串
- JSON由两组数据组成
- MAP对象,键值对
- 数组
Postman界面介绍
- Home主页
- workspaces 工作空间
- Collections 项目集合
- ApiS api文档
- Environments 全局变量
- Mock Server 虚拟服务器
- Monitors 监听器
- History 历史记录
常见的请求头
Accept
常用,它的作用是:客户端接收的数据格式;
比方说你的参数值填写的是application/json,就说明浏览器所接收的数据是json类型的数据,当你加了Accept请求头之后,你会发现你得到的数据和你没有加Accept请求头的数据是完全不一样的。如果你没有加Accept这个请求头,你得到的数据可能就是一个简单的网页。Accept它可以影响你返回的数据。
X-Requested-With
它的作用是:异步请求;
如果对开发有一定的了解的话,前端里面有这样一个技术Ajax异步请求。现在很多的功能都会用到这个异步请求,比如说登录。
简单的举个列子:如果现在你想去上海,只有一条路的话,你只能走唯一的一条路。那么如果有两条路或者多条路,可以坐飞机,高铁,汽车等等。那么它们就相当于异步,也就是说你可以通过飞机到上海,也可以坐高铁到上海,这样通俗的理解异步请求。
异步请求的特点:无刷新。就是说登录的时候是需要进行页面跳转的,而异步请求它不需要跳转也可以做到这样的请求。
User-Aget
它的作用是:发送请求的客户端的类型;
比如说我们可以通过postman去发送请求类型,也可通过浏览器去发送请求等等,那么有的接口你通过非浏览器去请求它是无法通过的
Content-type
它的作用是:请求的报文格式;
Cookie
Cookie信息;
有的接口需要登录之后才会生成Cookie信息,必须要保持登录的状态。这种情况我们就需要对Cookie信息进行管理。
Postman执行接口测试
请求页签
- Params:get请求传参
- authorization:鉴权
- headers:请求头
- Body:
- post 请求传参
- none 没有参数
- form-data:既可以传键值对参数也可以传文件
- x-www-from-urlencoded:只能够传键值对参数
- raw:json,text,xml,html,javascript
- binary:把文件以二进制的方式传参
- pre-request-script:请求之前的脚本
- tests:请求之后的断言
- cookies:用于管理cookie信息
响应页签
- Body:接口返回的数据
- Pretty:以Json、html、XML…不同格式查看返回的数据
- Raw:以文本的方式查看返回的数据
- PreView:以网页的方式查看返回的数据
- Cookies:响应的cookies信息
- Headers:响应头
- Test Results:断言的结果
- 200是状态码 Ok是状态信息 681MS是响应的时间 343B是响应的字节数
环境变量和全局变量
可以在Environments那里设置不同情况的环境
比如开发环境、测试环境、生成环境
并且使用来使用你的环境
比如:https:///路径
然后再在右上角选择你需要的环境即可
环境变量:环境变量就是全局变量
全局变量:全局变量就是能够在任何接口里面访问的变量
接口关联
- json提取器实现接口关联
- 在请求页签:Tests中使用var 变量名=JSON.parse(responseBody),json提取器将得到数据提取成json格式,这样可以设置一个全局变量,然后使用
- 使用正则表达式提取器实现接口关联
- 在请求页签:Tests中使用var 变量名=responseBody.match(new RegExp(‘复制Raw并把Value改为(*?)’)),这样可以设置一个全局变量,然后使用(记得是变量名[1])
postman内置动态参数以及自定义的动态参数
- 生成当前时间的时间戳
- 生成0-1000之间的随机数
- 生成速记GUID字符串