Postman Sandbox
一、前言
Postman Sandbox是一个JavaScript执行环境,用户可以在编写预请求和测试脚本时使用它(在Postman和Newman中)。在预请求/测试脚本部分编写的任何代码都将在这个沙箱中执行。
二、环境和全局变量
(1)Postman.setEnvironmentVariable(),设置一个环境变量variableName,并将字符串的variableValue赋值给它。用户必须为该方法选择一个工作环境。注意,只有字符串可以存储,存储其他类型的数据将导致意外的行为。
(2)Postman.getEnvironmentVariable(variableName),返回一个环境变量的值variableName,并用于pre-request&测试脚本。用户必须为该方法选择一个工作环境。
(3)Postman.setGlobalVariable(variableName,variableValue),设置一个全局变量variableName,并将字符串variableValue赋予它。注意,只有字符串可以储存,存储其他类型的数据将导致意外的行为。
(4)Postman.getGlobalVariable(variableName),返回一个全局变量的值variableName,并用于pre-request&测试脚本。
(5)Postman.clearEnvironmentVariable(variableName),清除环境变量,并命名为 variableName,必须为该方法选择一个工作环境 。
(6)Postman.clearGlobalVariable(variableName), 清除全局变量,并命名为variableName。
(7)Postman.clearEnvironmentVariables(), 清除所有环境变量,并必须为该方法选择一个工作环境。
(8)Postman.clearGlobalVariables(), 清除所有全局变量。
(9)Environment, 当前环境中的变量字典。使用[" foo "]来访问“foo”环境变量的值。注意,这只能用于读取变量,使用setEnvironmentVariable()来设置值。
(10)globals,使用globals[" bar "]来访问“bar” 全局变量的值。注意,这只能用于读取变量,使用setGlobalVariable()来设置值。
三、动态变量
Postman还提供了一些动态变量,用户可以在请求中使用它们。注意,动态变量不能在Sandbox中使用。用户只能以{…}这样的格式在请求的URL、Headers、 Body中使用。
(1){{$ guid},添加v4样式的guid。
(2){$ timestamp}},添加当前时间戳。
(3){$ randomInt},添加一一个0 ~ 1 000的随机整数。
四、Cookies
(1)responseCookies,获取域对应的所有Cookies,结果是一个Array,需要启用拦截器才能工作。
(2)Postman.getResponseCookies(cookiesName),获取指定名称的Cookies,需要启用拦截器才能工作。
五、请求和响应的相关属性
(1)request{obiect}, 用户可以调用Postman的请求对象,但这个对象是只读的,更改对象的属性无效。注意,变量不会在请求对象中解析。请求对象由以下内容组成。
a. data对象,请求的表单数据的字典,使用方法如下。
request.data["key"]= ="value"
b. Headers对象,请求头的字典,使用方法如下。
request . header[" key "]= " value "
c. method字符串,值是GET、POST、PUT等。
d. url字符串,请求的URL。
(2)responseHeader对象,只能应用于Tests中。
(3)responseBody对象,只能应用于Tests中。 它是一一个 包含原始响应主体文本的字符串,可以将此作为JSON.parse或xml2Json的输入。
(4)responseTime数值类型,只能应用于Tests中,响应时间以毫秒为单位。
(5)responseCode对象类型,只能应用于Tests中,包含如下3个属性。
a. code数值类型,指响应代码( 如200、404等)。
b. name字符串类型,指状态代码文本。
c. derail字符串类型,指对响应代码的解释。
(6)test对象,只能用于Tests中, 用户可以向其添加对象,Postman将把该对象的每个属性作为boolen值测试。
(7)iteration数值类型,仅在集合运行器和Newman中可用,表示当前测试运行索引,从0开始。