全部 ApiPost使用 后端 前端 接口测试 IOS Android 数据库 2022 测试技术 工具
问答 / 问答详情

postman预执行脚本如何转换到APIpost上

ApiPost使用 196次浏览

postman里的预执行脚本不能直接放到APipost上,我是个新手  所以来问问

| 0 收藏

6 个回答

apipost 7 版本已完全兼容postman的脚本了

但是我吧postman上的预执行脚本复制到apipost上面不好用

辛苦发一下脚本我们给看一下

const appId = '*****';

const secret = '***'

const timestamp = Date.now();

const nonce = Math.floor(Math.random() * 10000000000);

// 生成预签名字符串

// preSignStr=timestamp + appId + nonce + path + pk1 + pv1 + pk2 + pv2 + secret

const url = pm.request.url;

const path = pm.variables.replaceIn(url.getPath());

let preSignStr = timestamp + appId + nonce + path;

const queryStr = pm.variables.replaceIn(url.getQueryString());

if (queryStr) {

    const parts = queryStr.split('&');

    parts.map(item => {

        const i = item.indexOf('=');

        if (i > -1) {

            return item.substring(0i+ decodeURIComponent(item.substring(i + 1));

        } else {

            return item;

        }

    }).sort().forEach(item => {

        preSignStr += item;

    });

}

preSignStr += secret;

console.log("preSignStr=" + preSignStr);

// 生成签名

const signature = CryptoJS.MD5(preSignStr).toString(CryptoJS.enc.Hex).toUpperCase();

console.log("signature=" + signature);

// 设置请求头

pm.request.addHeader({key: 'x-wf-appid', value: appId});

pm.request.addHeader({key: 'x-wf-timestamp', value: timestamp});

pm.request.addHeader({key: 'x-wf-nonce', value: nonce});

pm.request.addHeader({key: 'x-wf-signature', value: signature});

麻烦了 谢谢

收到。我们目前url判定为一串字符串,所以无法直接获取url.getPath()及url.getQueryString()

后续会优化这方面情况。非常感谢您的建议

Apipost 私有化火热进行中

撰写答案

只服务于

前后端、移动端、测试人员

提问题 发布您遇到的Bug和问题,上万名大牛和开发者来帮您解决!