目录
2.HMAC-SHA256 请求签名(常用于 API 签名校验)
四、CI/CD 集成脚本(Newman & Pipeline)

一、基础脚本模板(Pre-request)
1.生成时间戳(秒级/毫秒级)
// 当前时间戳(秒)
pm.environment.set("timestamp", Math.floor(Date.now() / 1000));
// 当前时间戳(毫秒)
pm.environment.set("timestamp_ms", Date.now());
使用: 在请求中直接使用 {
{timestamp}} 或 {
{timestamp_ms}}
2.生成随机字符串 / 数字
// 随机字符串(8位)
pm.environment.set("randomStr", Math.random().toString(36).substring(2, 10));
// 随机数(6位)
pm.environment.set("randomNum", Math.floor(Math.random() * 1000000));
3.生成 UUID
function uuidv4() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0,
v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
pm.environment.set("uuid", uuidv4());
二、安全与认证脚本
1.JWT 动态生成(需要 CryptoJS)
// 仅适用于无需外部签名密钥的简易 JWT(开发测试用)
const header = { alg: "HS256", typ: "JWT" };
const payload = {
sub: "user123",
iat: Math.floor(Date.now() / 1000),
exp: Math.floor(Date.now() / 1000) + 3600
};
function base64url(source) {
return CryptoJS.enc.Base64.stringify(source)
.replace(/=+$/, '')
.replace(/\+/g, '-')
.replace(/\//g, '_');
}
const headerBase64 = base64url(CryptoJS.enc.Utf8.parse(JSON.stringify(header)));
const payloadBase64 = base64url(CryptoJS.enc.Utf8.parse(JSON.stringify(payload)));
const signature = base64url(CryptoJS.HmacSHA256(headerBase64 + "." + payloadBase64, "your_secret_key"));
const jwt = `${headerBase64}.${payloadBase64}.${signature}`;
pm.environment.set("jwt_token", jwt);
使用:
Headers 中加入:
Authorization: Bearer {
{jwt_token}}
2.HMAC-SHA256 请求签名(常用于 API 签名校验)
const apiKey = "testKey";
const apiSecret = "testSecret";
const timestamp = Date.now();
const payload = `GET|/api/user/info|${timestamp}`;
const signature = CryptoJS.Hma

最低0.47元/天 解锁文章
791

被折叠的 条评论
为什么被折叠?



