本文主要介绍在Postman中Pre-request Script怎么使用全局环境变量快速进行api接口测试的方法。
需求背景:客户端调用服务端不同接口,但是接口的使用规则都是一样的,就是使用常见的ak+sk方式进行生成签名放到header当中,服务端获取签名根据约定规则进行验证签名合法性。如果是开发可以使用编写代码的方式进行接口的测试,但是如果是测试人员或者方便使用的角度来说,使用Postman更是一种好的选择。
全局环境变量配置
- 在postman右上角点击如下按钮
- 点击【Add】按钮
- 添加需要的全局变量
- 设置一个环境变量名,这样可以方便在不同的环境使用,比如开发、测试、生产环境
编写Pre-request脚本
- 使用pm.environment.get(“全局变量名”)获取变量值
- 使用pm.request.headers.add在请求头添加sign
- 脚本如下
// 获取预先设置为环境变量的 APPID 和 SECRET_KEY
var accessKey = pm.environment.get("accessKey");//可以直接赋值
var secretKey = pm.environment.get("secretKey");
var method = pm.environment.get("method");
var appid= pm.environment.get("appid");
var url = request.url.substring(request.url.indexOf("/api"));
var timestamp = new Date().getTime();
var str = method + ";" + url + ";" + accessKey + ";" + timestamp + ";" + appid;
console.log(str);
var base64Signature;
try {
//使用sk进行加密
var signature = CryptoJS.HmacSHA256(str, secretKey);
//转成base64字符串
base64Signature = CryptoJS.enc.Base64.stringify(signature);
console.log(base64Signature);
} catch (error) {
console.error(error);
}
var signObj = { "accessKey":accessKey,
"appid":appid,
"secretStr":base64Signature,
"ts":timestamp};
pm.request.headers.add({
key:"signature",
value:JSON.stringify(signObj)
})
标签:Pre,Postman,get,accessKey,appid,request,使用,var,pm
From: https://blog.csdn.net/weixin_42027185/article/details/143264501