postman脚本用的是javascript语言。 postman的脚本能做什么?
在项目设计场景中,现在大多数的架构中用户的session信息是有状态。即前端需要保存用户的登录会话。也就是我们通常登录接口会返回如token, jsession等。那么需要将这些信息用变量进行保存。但是如果我们每一次登录过期了。都去请求一次登录接口。复制了来我们的token, 粘贴到变量里面去。是一个很笨很繁琐的一个事。那么postman的脚则可以解决这个问题。
关于postman变量前一篇 【postman】环境隔离 有写到。接下postman脚本怎么使用
1、请求之前执行脚本
图中标红模块点进会出现一个可编辑的文本框。在这里面编写的JS脚本会在发送请求之前进行执行。通常登录账户密码需要加密处理。这里可对账户提前进行加密处理
例如在这里设置获取一个当前时间戳。并将进设置到共享变量里面去。变量名叫X-timestamp
那么我们就可以在请求中进行引用这个变量。
在接口项目中很多场景都会使用请求之前进行脚本处理。像数据加密。实时获取时间戳。请求之前的数据处理等
2、请求之后脚本执行
登录接口中常常会返回用户的token、id基础信息。而在后面的业务接口中则会使用到这个数据。类似如下登录返回用户的access_token。在后面的请求中则需要带上这个token那么我们需要把这个access_token进行保存
这里返回了用户的一些基本信息请求token,刷新token。openId等。那么我们需要将一些有用的信息保存到变量中。这里就需要进行result脚本编写了。看下面这段脚本。则是将请求的结果保存到变量中。
//请求结果转成json对象
var jsonData = JSON.parse(responseBody);
if (jsonData.access_token){
//如果存在access_token。则保存到X-Token变量中。
pm.environment.set("X-Token",jsonData.access_token);
}
if (jsonData.refresh_token){
pm.environment.set("X-RefreshToken",jsonData.refresh_token);
}
if (jsonData.openid){
pm.environment.set("X-OpenId",jsonData.openid);
}
上面的脚本会将请求结果进行保存下来。接下来在后面的业务接口请求中则可以使用这个变量。比如用户信息获取接口。如果需要token,则可以刚刚保存下来的token引用进来
只要梳理好业务环境和接口的设计 。进行一一配置好。后面使用起来还是蛮方便的。