postman使用简介
一、下载安装
1,下载地址https://www.getpostman.com/apps,去官网根据自己环境下载对应安装包
2,下载安装完成后一般会有注册账号,可选择注册或不注册均可,建议注册账号,方便不同电脑上数据同步。
3,安装完成就可以使用了,postman初始页面如图示
二、案例介绍
本文以最基本的接口测试为例,HTTP协议接口,get及post请求
1 get请求:
假如我们现在拿到了一个接口文档,需要知道的是接口地址及接口参数,实现如下图
2,post请求
其中post请求的body中有四种形式,区别如下:
form-data:相当于Content-Type:multipart/form-data;它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件.。
x-www-form-urlencoded:相当于application/x-www-from-urlencoded,会将表单中的数据以键值对的形式拼接起来;如:name=许渺&gender=0。
raw:上传任意格式的文本,比如JSON、XML等。
binary:相当于Content-Type:application/octet-stream;用来上传二进制数据,一般是用来上传文件;因为没有键值对所以每次只能上传一个文件。
请求头中的Content-Type与请求参数的格式之间是有关联关系的
3,设置断言
postman的Tests中可以设置断言,有内置函数可以直接调用,在右侧列表点选即可;断言用来验证请求结果的准确性。
三、增加多个环境变量,可进行多环境切换测试。
1,如图示,选择增加环境变量
使用的时候加上两个花括号引用{{base_url}}
2,区别环境变量与全局变量
环境变量是特定的环境下引用的变量,必须要制定对应的环境才能引用到其中的变量
全局变量是在postman中所有的api都使用的变量,可以直接引用全局变量中的变量,而不用指定环境
四、使用过程中绕过登录验证
4.1:使用过程中是需要先登录的,此时发送请求就会停留在登录页面,此时为了绕过登录验证,我们可以增加登录cookie
(1)先在浏览器上登录,登陆后获取cookie
于header中增加对应cookie信息值,注意其中JSESSIONID一定要大写
这样就可以绕过登录验证环节,直接进行后续操作了。
五、参数加密
加密函数:CryptoJS.MD5(oldpasswordstr).toString()
使用MD5加密串,然后设置为全局变量,调用的时候直接使用{{参数名称}}即可访问
调用的时候使用{{变量名称}}
六、pre-Request Script与tests的区别:
pre-Request Script:设置请求前的数据
tests:设置测试用例,验证response中结果是否正确
七、上一个接口返回值作为下一个接口的入参:
案例:
方式一:
(1)需要把登录接口返回值中的ID参数作为下一次接口的传参。则在登录接口的‘Tests’中获取id,设为全局变量,这样下次再使用的时候直接用双引号调用即可。
{{参数名}}var body=JSON.parse(responseBody):表示登录接口返回的所有响应内容(前提是返回结果是json串) 然后设置返回值中的data中ID的数值,并设置为环境变量:pm.environment.set(“id”, body.data.ID)
下一个接口再使用的时候直接引用即可{{id}}
注意:必须是在同一环境下,注意接口顺序。
(2)如果返回的是数组形式的,则设置环境变量时写法如下:
var body=JSON.parse(responseBody)
pm.environment.set("taskid", body.data[0].taskid);
方式二:可在postman中调用console查看日志(实现原理同方式一)
// 调用postman.console查看
// 实现postman中A接口的返回值作为B接口的参数使用
console.log("--------responseBody--------------"+responseBody)
var jsonData=JSON.parse(responseBody) //对responseBody进行json格式化
console.log("----jsonData.result.condition-------"+jsonData.result.condition)
if(jsonData.result !==null || jsonData.result !==""){
tests["condition"]= true;
//注意设置环境变量前需要先配置测试Environment
pm.environment.set("condition", jsonData.result.condition);
}else{
tests["condition"]= false;
}
八、对json串进行加密:
JSON.stringify(obj)将JSON转为字符串。
JSON.parse(string)将字符串转为JSON格式;
先把json串转化为字符串,然后在进行md5加密
其中token为jsonStr的md5加密串,先JSON.stringify函数将json串转化为字符串,然后使用CryptoJS.MD5进行md5加密
九、base64转码
var wordArray = CryptoJS.enc.Utf8.parse(str2);
var base64 = CryptoJS.enc.Base64.stringify(wordArray);
对图片地址进行base64转码:
//完成base64转码
var str="http://XXX.XXX.XXX.XXX/Illegalparking/610104/2018-07-19/61008802-ACT882/15319672452573.jpg"
var wordArray = CryptoJS.enc.Utf8.parse(str);
var base64 = CryptoJS.enc.Base64.stringify(wordArray);
postman.setEnvironmentVariable('base64', base64)
设置base64后进行拼接字符串
完成对入参进行base64转码后使用
实现参数中部分字段值为环境变量,使用pm.environment.get()方法获取环境变量的值
//实现参数中部分字段值为环境变量值
var jsonstr={"JYBH":pm.environment.get("JYBH1"),"status":"0"}
var str2= JSON.stringify(jsonstr)
postman.setEnvironmentVariable('str2', str2)
var token=CryptoJS.MD5(str2).toString()
postman.setEnvironmentVariable('token', token)