postman简介
一般简单的接口测试我们可以直接在浏览器里面进行测试,但是涉及到一些权限设置的就无法操作了,因此我们需要接口测试的相关工具;postman是一个接口测试和http请求的工具。
官方网址:https://www.getpostman.com
postman的优点:
- 支持各种的请求类型:get、get、put、patch、delete等
- 支持在线存储数据,通过账号就可以进行迁移数据。
- 很方便的支持请求header和请求参数的设置。
- 支持不同的认证机制,包括Basic Auth,Digest Auth,OAuth 1.0,OAuth 2.0等
- 响应数据是自动按照语法格式高亮的,包括HTML,JSON和XML。
下载安装:
postman有Windows,mac、linux、以及chrome插件版本。这里主要介绍win平台版本的使用。
- 下载地址:https://www.postman.com/downloads/
- 官方文档:https://www.getpostman.com/docs/v6/
- postman Api文档:https://docs.postman-echo.com
新建请求界面介绍:
接口授权设置:
很多时候,出于安全考虑我们的接口并不希望对外公开。这个时候就需要使用授权机制授权过程验证您是否具有访问服务器所需数据的权限。当您发送请求时,您通常必须包含参数,以确保请求具有访问和返回所需数据的权限。postman提供授权类型,可以轻松授权类型,可以轻松地在postman本地应用程序中处理身份验证协议。
如果不填写,会出现401报错,即未授权。
Basic auth
基本身份验证是一种比较简单的授权类型,需要经过经验的用户名和密码才能访问资源,这就需要我们输入用户名和对应的密码。
Digest Auth
Digest Auth是一个简单的认证机制,最初是位HTTP协议开发的,因此也常叫HTTP摘要。其身份验证机制非常简单,它采用哈希加密方法,以避免用明文传输用户口令,摘要认证就是要核实参与通信双方都指导双方的一个口令。
Hawk Auth
Hawk Auth是一个HTTP认证方案,使用MAC(Message Authentication Code,消息认证码算法)算法,它提供了对请求进行部分加密验证的认证HTTP请求的方法。hawk方案要求提供一个共享对称密钥在服务器与客户端之间,通常这个贡献的凭证在初始TLS(安全传输协议)保护阶段建立的,或者是从客户端和服务器都可用的其他一些共享机密信息中获取的。
OAuth 1.0
OAuth (开放授权)是一个开发标准,允许用户让第三方应用访问该用户在某一网站上储存的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
cookies设置
环境变量:
环境变量指在不同环境,同一个变量值随着环境不同而发生变化,当在测试环境时,host值为:dev.postman.com,当切换到生产环境时,host值变为:postman-echo.com。
添加:
切换环境(即当前引用的值):
引用环境变量:{{变量名}}
本地变量:
本地变量主要是针对单个URL请求设置的变量,作用域只局限在请求范围内。如请求URL如下,设置两个本地变量(user,passwd)作为参数。请求方式为post。
创建变量:
引用变量:
全局变量:
全局变量是指在所有的环境里面,变量值都是一样的,全局变量的作用域是所有请求。
全局变量设置有两种方式:
- 点击界面里设置
- 在脚本里设置
界面设置
点击眼睛图标后的管理环境,在Global选项菜单点击Edit菜单即可设置全局变量,如下图所示。全局变量的引用格式和环境变量一样,
注意:当环境变量和全局变量名称一样时,切换到某个环境时,环境变量会覆盖全局变量。
新建全局变量:
引用全局变量:
{{all}}
数据变量:
数据变量是通过导入外部数据文件(json文件或者csv文件),来获取变量数据,我们可以创建一个如下内容的json文件:
data.json
[{
“username”:“jack”,
“password”:“6666”
},{
“username”:“jack2”,
“password”:“6666”
}]
postman断言:
一般来说执行完测试,我们需要对测试结果来进行校验,判断结果是否符合我们的预期,也就是断言,在接口测试中一般会根据响应状态码或者响应返回的数据进行断言。
postman提供一个测试沙箱(postman sandbox)测试沙箱是一个JavaScript执行环境,可以通过js脚本来编写pro-request script和test script。
- pre-request script(预置脚本)可以用来修改一些默认参数,在请求发送之前执行。有点类似于unittest里面的setUp()方法。
- test script(测试脚本)当接收到响应之后,再执行测试脚本。
运行Collection (批量执行):
当我们想批量执行某个集合里面的各个APi时,可以使用Collection Runner来批量运行API,同时可以进行环境变量,迭代执行次数,延迟时间等设置。
数据驱动:
应用背景:有时我们针对一个接口需要测试很多不同的参数,如果每次一个个的去修改参数值来进行测试,这样效率肯定会比较低下,因此我们需要每次迭代执行传入不同的参数进行测试,那么需要导入外部数据文件进行参数化,也就是所谓的数据驱动。
数据导入:
先创建一个json数据文件:data.json,文件类型选择application/json,内容如下:
引入文件:
引用文件中的值:
直接在要引用的地方填写{{username}}、{{passwd}}就可以了。