![03456b7a2b0f3e6147eb1744f6b3caac.png](https://img-blog.csdnimg.cn/img_convert/03456b7a2b0f3e6147eb1744f6b3caac.png)
在进行接口测试时,有些工作需要在请求发起前进行完成,这就好比你要去看一场演唱会,前提条件是你必须在合适的时间且拿着入场票才可以如愿,那么买票等操作就是你看演唱会的充分条件。另外无论是 Jmeter 的预置处理器还是单元测试的预设值(@BeforeClass、@BeforeMethod)等都有预置脚本的功能,postman 在预置脚本方面也有非常好的支持;
1.postman 自身封装的预置脚本
postman 为了减少大家学习 js 语言的成本,本身封装了一些预置脚本,这些脚本如下:
![ed4ef6c08d4c17cda62e0af860d207dc.png](https://img-blog.csdnimg.cn/img_convert/ed4ef6c08d4c17cda62e0af860d207dc.png)
上述脚本的含义如下:
【1】pm.environment.get("variable_key"):获取环境变量;
【2】pm.globals.get("variable_key"):获取全局变量;
【3】pm.variables.get("variable_key"):获取本地变量;
【4】pm.environment.set("variable_key", "variable_value"):设置环境变量;
【5】pm.globals.set("variable_key", "variable_value"):设置全局变量;
【6】pm.environment.unset("variable_key"):清除环境变量;
【7】pm.globals.unset("variable_key"):清除全局变量;
【8】pm.sendRequest("https://postman-echo.com/get", function (err, response) {
console.log(response.json());
});发送一个请求;
学习过前面的变量可以看出 postman 自身封装的预置脚本都是用来设置变量,也就是为了方便我们进行参数化。
2.postman 预置脚本使用示例:
我们这里有请求:https://postman-echo.com/post,此接口传递三个参数,分别为 name(姓名)、age(年龄)、height(身高);
![03a8cf1f527e7d548520064f22d55c53.png](https://img-blog.csdnimg.cn/img_convert/03a8cf1f527e7d548520064f22d55c53.png)
我们现在通过预置脚本新增环境变量 name01 和 age01,脚本编写如下:
pm
![a4560452c664bcc71db802082f13b30c.png](https://img-blog.csdnimg.cn/img_convert/a4560452c664bcc71db802082f13b30c.png)
然后将请求中的 name、age 的值替换为参数 name01 和 age01,未 send(发送请求)前,此时 name01 和 age01 还不存在于环境变量中,鼠标悬停可以看到。
![734ebbfa7879edf094dc0180804d42e8.png](https://img-blog.csdnimg.cn/img_convert/734ebbfa7879edf094dc0180804d42e8.png)
下面我们点击 Send
![91b435e56d60550abc06a783b647dee0.png](https://img-blog.csdnimg.cn/img_convert/91b435e56d60550abc06a783b647dee0.png)
此时可见环境变量 name01 和 age01 生效;
由此可见 Pre-request Scripts(预置脚本的一个使用局限):第一次编写后必须进行 Send 才会使其生效,不 Send 之前预置脚本不会被执行,其脚本自然不生效;
3. 自写预置脚本示例
除了使用 postman 自身封装的脚本外,我们还可以使用自己使用 js 编写的脚本作为预置脚本。如我们想添加一个 nowTime参数,这个参数必须是当前系统时间;
//获取当前日期
![db43d74bdd6e0d92620afa1bed3716b6.png](https://img-blog.csdnimg.cn/img_convert/db43d74bdd6e0d92620afa1bed3716b6.png)
此时我们查看下调用结果:
![f208313c681a4a6e26b08dfe0c5ae978.png](https://img-blog.csdnimg.cn/img_convert/f208313c681a4a6e26b08dfe0c5ae978.png)
更多交流~可以来微信搜索 "海哥说测试" 与我进行交流~
![aadab451adb84b8485fa78b2b560ed85.png](https://img-blog.csdnimg.cn/img_convert/aadab451adb84b8485fa78b2b560ed85.png)