邮递员中的预先请求脚本

时间:2017-05-25 07:54:34

标签: postman web-api-testing

如何从另一个GET API的预请求脚本选项卡调用POST API请求(具有带用户名和密码字段的请求正文的登录API),该API在其请求URL中使用来自上述API主体的令牌。

登录API:POST方法;请求正文:用户名和密码;响应体:令牌。 获取客户记录API:GET方法;请求URI:/ token /

只想在邮递员的一个测试中覆盖这个端到端的场景。 可以请任何人帮我处理预先请求脚本吗?我应该如何调用Login API?

2 个答案:

答案 0 :(得分:0)

可以肯定。

  1. 在Postman的“预请求脚本”选项卡上,使用jQuery ajax方法向您的登录API发出POST请求。
  2. 将响应正文(您的令牌)保存到环境变量中(postman.setEnvironmentVariable())。
  3. 将邮递员请求网址的/token/部分设为/ {{your_variable_name}} /。
  4. 查看this

答案 1 :(得分:0)

我只是遇到了同样的问题,并找到了解决方法here

要点在于,您可以传递请求对象而不是请求的URL。

const loginRequest = {
    url: 'http://example.com/login',
    method: 'POST',
    header: 'Content-Type: application/json',
    body: {
        mode: 'application/json',
        raw: JSON.stringify({        
            "username": pm.environment.get("username"),
            "password": pm.environment.get("password")
        })
    }
};


pm.sendRequest(loginRequest, function (err, response) {
    pm.environment.set("accessToken", response.json().token);
});

仅此而已。

更新我刚刚在Postman文档中找到了the detailed info