【问题标题】:Clearing Cookies Programmatically is not working in Postman and Newman以编程方式清除 Cookie 在 Postman 和 Newman 中不起作用
【发布时间】:2020-06-25 03:28:34
【问题描述】:

当我在 Newman 和 Postman Runner(主要是 Newman)中运行我的请求集合时,我需要能够在请求之间自动删除 cookie。

我遵循了 Postman 的人在此评论中给出的建议:https://github.com/postmanlabs/postman-app-support/issues/3312#issuecomment-516965288

但它不起作用。

这两个 SO 问题的答案也说明了执行此操作的相同方法:Postman: How do you delete cookies in the pre-request script? Deleting cookies in postman programmatically

这是我使用的代码,上面的来源建议放置在预请求脚本中:

const jar = pm.cookies.jar();
jar.clear(pm.request.url, function (error) {
  console.log("Error: ");
  console.log(error);
//handle error
});

[注意:运行此代码时错误记录为空]

我已多次尝试此代码,并对该代码进行了许多不同的修改。我也将域列入白名单。但我总是在请求中得到错误的响应。当我手动清除 cookie(使用 cookie 管理器 UI 对话框)时,请求会给出正确的响应。我需要帮助来确定我在以编程方式删除 cookie 时可能出现的问题。

我也试过这个来看看我要删除的 cookie 是什么:

jar.getAll(pm.request.url, function (error, cookies) {
    console.log("Cookies:");
    console.log(cookies);
    console.log("Error: ");
    console.log(error);
});

这里的 cookies 是一个空数组。也许这就是问题所在。但这很奇怪,因为当我手动检查 Cookie Manager 时,会显示很多 cookie。一旦我手动删除 cookie,请求就会返回正确的响应。

我的另一个问题是:在上面的代码中,将“cookies”和“错误”作为参数的回调函数的目的是什么。这些函数是每次调用还是仅在某些条件下调用?在邮递员文档中找不到回调函数的用途:https://learning.postman.com/docs/postman/sending-api-requests/cookies/

谢谢

【问题讨论】:

    标签: cookies postman newman


    【解决方案1】:

    如果 cookie 具有“httpOnly”或“secure”标头,则无法通过 postman 中的脚本删除它们。 jar.clear 清除除 httpOnlysecure 之外的所有 cookie。

    我认为这是一个错误,需要 Postman 修复。如果是这样,Postman 中应该有一个设置来激活或禁用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 2015-06-17
      • 2016-04-02
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多