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'])});
apipost可以使用环境变量和全局变量都是可以用来存依赖的值的,
apt.globals.set("key", "value"); //全局变量
apt.variables.set("key", "value"); //环境变量
想要对resquest的body进行加密可以通过
来实现
我可能说的不大清楚。
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。目前可以通过这种方法对参数进行动态的修改和加密