本文共 1981 字,大约阅读时间需要 6 分钟。
在 Postman 中,动态构建接口请求的签名可以通过 Pre-request Script 脚本实现。这个脚本会在请求发送之前执行,主要用于获取必要的动态参数并构造签名。
时间戳获取:
时间戳通常用来防止重复请求,可以通过以下方式获取:function getUnixTime() { return Math.round(new Date().getTime() / 1000);}URL 路径参数:
URL 路径参数可以通过解析当前请求的 URL 来获取。以下是获取 URL 路径的实现:function getUrlRelativePath(url) { var arrUrl = url.split("//"); var start = arrUrl[1].indexOf("/"); var end = arrUrl[1].indexOf("?"); var relUrl = arrUrl[1].substring(start, end); return relUrl;}环境变量的使用:
Postman 提供了环境变量功能,可以用来存储常用参数。例如:var appid = pm.environment.get("appid");var secret = pm.environment.get("appsecret");构造签名串:
签名串的构造方式为:appid + $ + url + $ + timestamp。例如:var url = getUrlRelativePath(request.url);var plain = appid + "$" + url.toLowerCase() + "$" + time;
加密算法的使用:
使用 Postman 提供的加密库(如 CryptoJS)进行 HMACSHA1 加密:var hmac = CryptoJS.HmacSHA1(plain, secret).toString(CryptoJS.enc.Base64);
发送签名请求:
将构造好的签名值通过 POST 请求发送到指定的接口。例如:pm.sendRequest(host + "/FaceIn/ToHmacsha1?plain=" + text + "&secret=" + secret, function(err, response) { var json = response.json(); pm.environment.set("sign", encodeURIComponent(json.result));});在 Postman 中,将相关参数存储在环境变量中,可以避免重复配置,简化维护工作。
创建环境变量:
在 Postman 的设置中,创建所需的环境变量。例如:引用环境变量:
在脚本中使用pm.environment.get("变量名") 来获取环境变量的值。将动态参数(如时间戳和 URL 路径)存储到环境变量中,便于在多个请求中重复使用。例如:
var time = getUnixTime();pm.environment.set("stamp", time); 定义测试案例:
在 Postman 中创建一个新集合,添加需要测试的接口。每个接口可以对应一个测试用例。设置预期结果:
根据接口的返回类型设置预期结果:选择运行环境:
在 Collection Runner 中选择要运行的环境(如开发环境或测试环境)。启动测试:
点击 "Runner" 按钮,选择要测试的集合并点击 "Run XXX 接口" 开始执行。检查单个接口结果:
在每个接口的详情窗口中查看测试结果,确保返回值符合预期。查看全局报告:
Collection Runner 会生成一个全局报告,包含所有测试的执行结果和错误日志。通过 Postman 的 Pre-request Script 和 Collection Runner,开发者可以高效地执行接口测试和自动化测试,减少手动操作,提高测试效率。动态构建签名的实现不仅简化了测试流程,还确保了接口调用的安全性。
转载地址:http://zaxfk.baihongyu.com/