Skip to content

Latest commit

 

History

History
66 lines (45 loc) · 3.03 KB

Postman使用之Scripts.md

File metadata and controls

66 lines (45 loc) · 3.03 KB

在我们日常开发中经常需要用到登录授权,大多接口都需要携带 Auth 信息。在 Postman 中调试接口时发送登录请求后再复制粘贴 Token,麻烦。Postman 的 Scripts 功能可以较好的解决这个问题。

官文:https://learning.getpostman.com/docs/postman/scripts/intro_to_scripts/

Test scripts

Test scripts 是在请求结束后运行的 JavaScript 脚本。在登录请求结束后将 Token 设置到环境变量中,在需要 Auth 的接口中取用变量。

pm.test

pm.test(testName:String, specFunction:Function):Function 可以用来确认 Response 是否和预期返回的一致。

param description
testName 测试名,在 Test Results 面板中显示
specFunction 测试执行函数

首先确认 Request 是否请求成功,HTTP 状态码为 200。

pm.test("Status code is 200", function() {
    pm.response.to.have.status(200);
})

接着判断 Response 是否如期返回 token。如果有返回就设置到环境变量中,如果没有就不管了。

pm.test("Response has token", function() {
    pm.response.to.have.jsonBody("token");
    // 如果上面断言不通过,下面的语句不会执行
    const token = pm.response.json().token;
    pm.environment.set("token", token);
})

合并。

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
    pm.test('Response has token', function() {
        pm.response.to.have.jsonBody("token");
        const token = pm.response.json().token;
        pm.environment.set("token", token);
    })
})

Test Results (1)

Test Results (2)

Variables

经过上述的 Test scripts 已经将登录请求得到的 token 设置到了环境变量中。现在在需要验证 Auth 信息的请求中引用变量,以 Authorization为例。

变量引用有两种方式,一种是通过 { {variableName} }(去除空格)的形式访问,这种形式只能在 Request Builder 中使用,也就是只能在 URL、Params、Authorzation、Headers、Body 中使用,另一种是通过 Scripts 访问,如上述用到的 pm.enviroment.set(variableName:String, variableValue:String)。更多查阅官文:https://learning.getpostman.com/docs/postman/environments_and_globals/variables

Authorization 🌰:

Variables demo

More

Postman 的功能很强大,灵活应用可以很好提高工作效率和质量。比如灵活使用 Environment 可以方便的在测试和生产环境切换,使用 Scripts 可以实现依次发送多个请求,或者 token 失效后自动刷新 token。活学活用查阅官文:https://learning.getpostman.com/docs