首页 > 解决方案 > Postman - 从 NodeJS 运行的 Newman

问题描述

为了保存来自邮递员 API 调用的响应,我正在使用 newman run 执行邮递员集合。

集合在运行时运行

newman run C:\TasteBud\NewMan\JSON-Order_collection.json --env-var unique_order_id=OD-06-07-I2Q5-JYRY5ARPN --environment C:\TasteBud\NewMan\EnvironmentJSON.json

但是,当我将相同的集合作为 javascript 或 nodejs 脚本的一部分运行时。

node writeToFile.js    

它会抛出错误,因为节点“1⠄ JSONError in test-script” 参考附图。我需要将登录请求生成的身份验证令牌传递给后续请求。所以我在“测试”中有变量赋值。

let response = pm.response.json();
pm.environment.set("auth_token", response.data.auth_token);
console.log(pm.response.json().data.auth_token);

为什么我不能“测试”?如果没有,那么如何为后续 API 调用传递/设置这些环境变量?

writeToFile.js 中的代码在这里。writeToFile.js

使用命令行成功运行

通过 NodeJS 调用

测试中的 Javascript 以获取身份验证令牌

标签: postmannewman

解决方案


在生成令牌时始终使用状态码验证。因为每个请求都是基于令牌的,如果我们收到否定的状态码,终止构建。

postman.setNextRequest(null);

var jsonData = JSON.parse(responseBody);
if(responseCode.code === 200){
tests["Status code is 200"] = responseCode.code === 200;
postman.setEnvironmentVariable("AT", jsonData.oauth2.accessToken);
console.log("AccessToken : " +jsonData.oauth2.accessToken);
}
else{
    postman.setNextRequest(null);
      console.log("Error generating user token");
    console.log("Status code : "+responseCode.code);
    console.log("Status description  : "+jsonData.statusDescr);
}

推荐阅读