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

如何返回全部变量,像postman中的pm.environment.values

request body 需要加密,request 中的body 参数是动态变化的,可能有1个,可能有多个,依赖于之前放到apt.avriables中的值。原来在postman中用以下方法实现。现在用api post 可有替换?

var values = pm.environment.values;

values.each(function(v){body = body.replace(new RegExp("{{"+v['key']+"}}",'g'),v['value'])});

| 0 收藏

3 个回答

apipost可以使用环境变量和全局变量都是可以用来存依赖的值的,

apt.globals.set("key", "value"); //全局变量

apt.variables.set("key", "value"); //环境变量

想要对resquest的body进行加密可以通过

如何返回全部变量,像postman中的pm.environment.values

来实现

我可能说的不大清楚。

1,加密方式是我们自己做的,服务端也会解密,加密前需要吧参数填好,才能加密。

2,参数是不固定的,也不知知道请求参数有哪些。参数都是变量

举个例子。

请求1 :

body{

"name":{{name}}

"age":{{age}}

}

请求 2,

body{

"time":{{time}}

"location":{{location}}

}

象post man是支持的。

//获取所有key和value。 

var values = pm.environment.values;

//从环境中获取key和value,并把value 赋值,对于请求1,就是 name和age 赋值,对于请求2就是 time和locaiton赋值

values.each(function(v){body = body.replace(new RegExp("{{"+v['key']+"}}",'g'),v['value'])});


以上就很通用,适合所有请求body加密。api post可有相似的方法可供使用?

大概理解了您的需求,您可以在预执行脚本的request.request_bodys获取到动态请求的参数,这会是一个对象,然后遍历对象的时候在重新使用apt.setRequestBody("key", "value");给body赋加密后的值,暂时不支持直接修改request body。目前可以通过这种方法对参数进行动态的修改和加密

Apipost 私有化火热进行中

撰写答案

只服务于

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

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