Apifox 前置脚本的使用

Apifox 前置操作的使用

1. 题记

API测试真麻烦:近期在xxx项目上测试API时,因为要是通过网关请求API,需要认证token才能请求,所以在每次测试的,都要先登录系统,从浏览器复制token,再贴到apifox的接口上把token帖上去,然后再去测试具体的接口;更麻烦的是,切换环境的时候,token也要换,又要把上面的步骤重做一遍;

API测试真丝滑:在使用apifox过程中,注意到有个前置操作的功能,用起来之后,把上面需要n次鼠标点击操作变给0次鼠标点击操作,只需要关注具体的API接口的测试即可。

本次前置操作案例:使用apifox进行接口测试时,通过前置脚本自动获取token并添加到全局变量,无须关注网关认证;

参考资料:

Apifox使用文档-pm对象API
Apifox使用文档

2. 实操

2.1 ### 定义全局变量

定义一个全局变量x-token,用于存放我们的token;
image

2.2 前置操作获取token

项目概览中添加前置操作,选择自定义脚本;

脚本代码如下:

// 获取环境变量-前置URL
const envPath = pm.environment.get('BASE_URL')
console.log("path:" + envPath)
const http = {
    url: envPath + "/security/login",
    method: "POST",
    header: "Content-Type:application/json",
    body: {
        mode: "urlencoded",
        urlencoded: [
            { key: "username", value: "zhangsan" },
            { key: "password", value: "123456" }
        ]
    }
}

// 远程API测试才需要请求token
if (!envPath.includes("localhost")) {
    pm.sendRequest(http, function (err, response) {
        // console.log(response.json());
        const res = response.json();
        console.log(res.data.token);
        pm.globals.set('x-token', res.data.token)
    });
}


2.3 项目Auth设置token

在Apifox中使用全局变量的语法:{{变量名}}, 如下图:
image

2.4 畅爽的测试API

在测试接口的时候,会先执行前置处理脚本去调用登陆接口,然后解析接口里的token,并把其赋值给全局变量x-token,又因2.3中我们添加了全局的API Key认证,所以会在请求的时候自动将token放到每个接口的请求头。

这样我们在测试需要认证的接口时,就不用每次手动登陆系统,然后去浏览器里把token复制出来,再贴到每个接口里面了。
image

posted @ 2022-06-24 14:29  穷苦书生  阅读(62)  评论(0编辑  收藏  举报