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

v7.0.2 (Mac Intel)全局预执行脚本还是有问题

ApiPost使用 392次浏览

1、不支持解构赋值,控制台报错

const paramObj = {...request.request_querys,...request.request_bodys}

v7.0.2 (Mac Intel)全局预执行脚本还是有问题

2、不支持函数操作,控制台报错(报错信息同上)

const keys = Object.keys(paramObj)

3、apt.setRequestBody不生效

设置了之后发送请求还是原来的值,

这是第三次反馈了。。,以上操作在 6.1.5 版本上都没有问题。

| 0 收藏
  • Kevin
  • 2022-09-13 提问

8 个回答

是不是 console.log 输出了?

不输出,直接报错

  • Kevin
  • 2022-09-13 回答

从  7.0beta 版本开始我每个版本都试过,一直是有问题的

  • Kevin
  • 2022-09-13 回答

更新:测试 console.log 输出就会报错,不输出的话应该没问题,但是这个算法算出来的密码是不是有问题,同样的预执行脚本 7.0.2 加密的无法被后端识别,6.1.5 的没有问题。

  • Kevin
  • 2022-09-13 回答

JSEncrypt算法

  • Kevin
  • 2022-09-13 回答

console.log 输出报错的问题很快会处理。

加密算法跟6版本一致。

// ----- 加密 demo-----
var encryptor = new JSEncrypt()  // 创建加密对象实例
//之前ssl生成的公钥,复制的时候要小心不要有空格
var pubKey = `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtN
FOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76
xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4
gwQco1KRMDSmXSMkDwIDAQAB
-----END PUBLIC KEY-----`
encryptor.setPublicKey(pubKey)//设置公钥
var rsaPassWord = encryptor.encrypt('要加密的内容')  // 对内容进行加密

console.log(rsaPassWord)

// ----- 解密 demo-----
var decrypt = new JSEncrypt()//创建解密对象实例
  //之前ssl生成的秘钥
var priKey  = `-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQ
WMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNR
aY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB
AoGAfY9LpnuWK5Bs50UVep5c93SJdUi82u7yMx4iHFMc/Z2hfenfYEzu+57fI4fv
xTQ//5DbzRR/XKb8ulNv6+CHyPF31xk7YOBfkGI8qjLoq06V+FyBfDSwL8KbLyeH
m7KUZnLNQbk8yGLzB3iYKkRHlmUanQGaNMIJziWOkN+N9dECQQD0ONYRNZeuM8zd
8XJTSdcIX4a3gy3GGCJxOzv16XHxD03GW6UNLmfPwenKu+cdrQeaqEixrCejXdAF
z/7+BSMpAkEA8EaSOeP5Xr3ZrbiKzi6TGMwHMvC7HdJxaBJbVRfApFrE0/mPwmP5
rN7QwjrMY+0+AbXcm8mRQyQ1+IGEembsdwJBAN6az8Rv7QnD/YBvi52POIlRSSIM
V7SwWvSK4WSMnGb1ZBbhgdg57DXaspcwHsFV7hByQ5BvMtIduHcT14ECfcECQATe
aTgjFnqE/lQ22Rk0eGaYO80cc643BXVGafNfd9fcvwBMnk0iGX0XRsOozVt5Azil
psLBYuApa66NcVHJpCECQQDTjI2AQhFc1yRnCU/YgDnSpJVm1nASoRUnU8Jfm3Oz
uku7JUXcVpt08DFSceCEX9unCuMcT72rAQlLpdZir876
-----END RSA PRIVATE KEY-----`
decrypt.setPrivateKey(priKey)//设置秘钥
var uncrypted = decrypt.decrypt(rsaPassWord)//解密之前拿公钥加密的内容

console.log(uncrypted)

那就奇怪了,我把所有打印都去掉,同样的脚本,7.0.2不行,6.1.5 就可以。。

  • Kevin
  • 2022-09-14 回答

找到原因了,7.0.2 版本加密后的密码传到后端 ‘+’ 会变成空格,导致后端收到加密数据不对,好奇怪。

  • Kevin
  • 2022-09-14 回答
Apipost 私有化火热进行中

撰写答案

只服务于

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

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