Postman的预请求脚本
Posted 白雪冬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postman的预请求脚本相关的知识,希望对你有一定的参考价值。
一、前言
预请求脚本,顾名思义,是指在请求发送之前执行的脚本。如果想在请求发送时包含当前时间戳或者一个随机的字母、数字、字符串,在这个场景下使用预请求脚本是很好的。例如,要在请求头中包含一个时间戳,可以设置一个环境变量,其值从函数返回,如图所示:
然后,可以通过输入“timestampHeader”来访问header数据编辑器中的timestampHeader变量。当发送请求时,预请求脚本将被执行,并且timestampHeader的值将被赋予给变量timestampHeader,如图所示,在Headers中通过使用timestampHeader来传递变量。
Postman提供了预请求脚本的功能,这极大地方便了用户的测试,可能部分用户看到脚本开始担心了,例如,不会使用javascript,不知道pm、Environment等关键字的意思,没关系,Postman准备了常用脚本示例,这些脚本能够满足大多数接口测试的需求,接下来,一起认识一下它们吧!Postman在右侧区域列出了常用脚本示例,如图所示:
一、准备工作
(1)准备一个接口,如前面用到的豆瓣图书查询接口。
get请求:https://api.douban.com/v2/book/search?q=笑傲江湖
(2)打开“Postman Console”窗口
点击Postman左下角的“console”图标,如图所示,或使用组合键“CMD/Ctrl + Alt + C”,打开“Postman Console”窗口。
(3)了解函数console.log(“Hello World”),打开“Postman Console”窗口,知道它用于在“Postman Console”窗口输出信息,如图所示:
注意:“Postman Console”窗口输出内容的顺序体现了脚本执行顺序,即Pre-request-Script请求中的脚本先执行,然后才发送接口的请求。
三、设置变量、获取变量值的示例脚本
(1)Set a global variable(设置一个全局变量)的示例如下:
pm.globals.set("variable_key", "variable_value");
(2)Set an environment variable(设置一个环境变量)的示例如下:
pm.environment.set("variable_key", "variable_value");
(3)Get a global variable(获取一个全局变量)的示例如下:
pm.globals.get("variable_key");
(4)Get an environment variable(获取一个环境变量)的示例如下:
pm.environment.get("variable_key");
(5)Get a variable(获取一个变量)的示例如下:
pm.variables.get("variable_key");
注意:脚本中的双引号和分号都是英文格式。
先来看看原始的接口请求:它只是一个普通的GET请求,没有Pre-request-Script脚本,如图所示:
没有“Tests”脚本,如图所示:
没有全局变量,只有有一个普通变量"name=storm",如图所示:
接下来,通过单击示例脚本,向Pre-request-Script添加脚本示例,此处添加了一个Set a global variable脚本,如图所示:
修改变量名和值(key1 = value1),然后添加一个environment variable(key2 = value1),最后通过console.log语句输出globals、environment变量及当前环境中的变量name,如图所示:
接下来,单击“Send”按钮,发送请求,“Postman Console”窗口的输出情况,如图所示:
可以看到,在发送请求前,先输出了3个值,正好对应Pre-request Script。再来看看Postman的变量,当前环境变量中增加了一个键为key2、值为value2的环境变量;增加了一个键为key1,值为value1的全局变量,如图所示:
四、清除变量的示例脚本
(1)Clear a global variable(清除一个全局变量)的示例如下:
pm.globals.unset("variable_key");
(2)Clear an environment variable(清除一个环境变量)的示例如下:
pm.environment.unset("variable_key");
下面修改Pre-request script,来验证上面两种方法,如图所示:
发送接口请求,查看“Postman Console”窗口的输出,如图所示:
再看Postman的当前变量,如图所示:
全局变量key1和环境变量key2,全已经被删除了。
五、发送请求示例脚本
Send a request(发送一个请求)的示例如下:
pm.sendRequest("https://postman-echo.com/get", function (err, response)
console.log(response.json());
);
修改Pre-request Script,在测试豆瓣搜索图书接口前,先发送一个请求,如图所示:
查看“Postman Console”窗口的输出,可以看到先通过Pre-request Script脚本发送了一个GET请求,然后才发送被测的接口请求,结果如图所示:
Postman提供的预请求脚本现已经全本演示完毕,下文讲述测试脚本的知识。
以上是关于Postman的预请求脚本的主要内容,如果未能解决你的问题,请参考以下文章