一、添加变量
添加环境变量的两种方式:
手动添加
第二种:
环境变量的效果:
全局变量的操作一致!
二、预制脚本
设置变量pm.environment.set(“varible_key”,“value”)
清除变量pm.environment.unset(“varible_key”,“value”)
获取环境变量:pm.environment.get ("valible_key“)
执行流程:预请求脚本–执行请求–响应数据-断言
设置环境变量,在pre-req设置:
pm.environment.set("local","localhost");
var place=pm.environment.get("local");
console.log(place)
var ss=pm.globals.get("localhost");
console.log(ss)
三、Tests断言
常用断言Tests:
1、主要是响应体包含某字符串
2、检查响应体中json值
发送请求:
const enchoPostequest={
url:'http://localhost/api/xxx',
method:'POST'
header:'Content-Type:application/x-www-form-urlencoded',
body:{
mode:'urlencoded',
urlencoded:'username=admin&password=admin'
}
};
pm.sendRequest(echoPostRequest,function(err,res){
console.log(err?err:res.json());
});
将响应体打印出来
//将响应数据转换成json格式
var jsonObject = xml2Json(responseBody);
console.log("123"+jsonObject)
var response=JSON.stringify(jsonObject);
//将json转换为字符串
console.log("456"+response)
对于返回数据是json格式的断言:
四、批量执行请求
1.准备数据文件
CSV或者其他格式,保存文件为uft-8编码;例如:
2.利用postman迭代执行
在请求中,通过获取变量值{{实际设置的变量名}}
点击集合的run,导入csv格式的文档,记得改csv数据格式,然后修改Iterations,点击run即可。(可以通过Preview来查看数据内容是否正确,
Iterations是可以导入执行批量数据,可以通过参数调用随机数实现。)
3.测试结果导出
注意点
- 全局变量:全局范围中不存在同名变量
- {{变量名}} 可以通过前置脚本设置,也可以通过环境变量管理框设置。
- 环境变量 :通过右上角的小齿轮设置
- 一次只能选择一个环境,一个环境可以包含多个变量值,环境变量 值的优先级更高
- 集合变量只作用当前集合
五、 接口加密
postman:
通过脚本先将需要用到的数据进行加密,然后将其设置为环境变量,获取即可
var times=new Date().getTime()
使用md5加密
var miwen=CrytoJS.MD5(times).toString().toUpperCase()
console.log(miwen)
Jmeter:
通过自助函数digest加密:
后续就可以通过调用函数:${__digest(MD5,ADMIN,)} 来实现调用加密的数据了。
六、接口签名
使用用户名、密码、时间戳和所有排过序之后的参数组合起来,再加密得到的字符串。字符串是唯一有权访问第三方金融接口的鉴权码。
为什么要做接口签名?
1、防伪装攻击
2、防篡改攻击
3、防重放攻击
4、防数据泄露
签名规则;
- 1、对所有请求的参数按key按ACSII码做升序排列
- 2、把参数的名称和参数值连接成字符串
- 3、用申请到的appid和appsecret连接到字符串的头部
- 4、用时间错连接到字符串的尾部
- 5、再把这个字符串安装32位的MD5加密,加密后在转化成大写。10s有效
七、其他辅助小工具
高效小工具:
①在线ascii码跟中文的互译:https://ip138.com/ascii/
②在线json格式校验:
http://www.bejson.com/