响应处理示例
在本主题中,我们将研究几个 HTTP 响应处理示例。要自己尝试示例,请探索auth-requests和test-responses requests 集合。
检查响应标头、正文和内容类型
在此示例中,我们将创建几个测试来验证以下内容:
请求执行成功,即响应状态为200。
标头在响应正文中接收。
响应的内容类型是application/json。
要创建测试,我们调用客户端对象的test
方法。在测试内部,我们可以通过调用对象的方法来断言特定的条件,并引用响应对象的各种属性来验证它们。assert
client
### 检查响应状态、标头和内容类型 GET https://httpbin.org/get > {% client.test("请求执行成功", function() { client.assert(response.status === 200, "响应状态不是 200"); }); client.test("Headers 选项存在", function() { client.assert(response.body.hasOwnProperty("headers"), "Cannot find 'headers' option in response"); }); client.test("响应内容类型为 json", function() { var type = response.contentType.mimeType; client.assert(type === "application/json", "预期为 'application/json' 但收到 '
使用环境变量
在此示例中,我们将从接收到的响应中捕获一个值到环境变量中,然后可以在后续请求中使用该值。
第一个请求涉及一个响应处理程序脚本,它将接收到的响应正文中的身份验证令牌保存到client.globalauth_token
下的变量中。为了实现这一点,我们使用了构造。client.global.set(VariableName, VariableValue)
POST https://httpbin.org/post Content-Type: application/json { "token": "my-secret-token" } //保存一个变量 > {% client.global.set("auth_token", response.身体.json.token); %}
请求执行后,auth_token
可以通过构造的方式从后续请求{{auth_token}}
和响应处理程序脚本中访问该变量client.global.get("auth_token")
。
//访问变量 GET https://httpbin.org/headers Authorization: Bearer {{auth_token}}
要从响应头中获取值,请使用headers对象的valueOf
方法。如果接收到多个具有相同名称的标头(这是Set-Cookie标头的常见情况),请改用该方法。这将返回一个包含所有响应标头值的数组。valuesOf
POST https://httpbin.org/cookies //从第一个 Set-Cookie 头中保存一个 cookie > {% client.global.set("my_cookie", response.headers.valuesOf("Set-Cookie")[0] ); %}
最后修改时间:2021 年 5 月 19 日