【问题标题】:Is there any way to save a full XHR payload in a cypress run?有没有办法在柏树运行中保存完整的 XHR 有效负载?
【发布时间】:2021-04-11 06:02:19
【问题描述】:

我们的 cypress 套件在每台机器、环境和位置都可以在本地正常工作。 我们已将其配置为与 Bitbucket 管道一起使用,但有一个特定步骤由于其进行的 API 调用而始终失败。此 API 调用是针对外部服务进行的,我们正在根据请求动态构建的负载中添加参数。

我们怀疑从管道运行它时,其中一些参数没有正确构建(可能与位置、代理等有关),因为我们得到“未经授权”。

所以问题是我们没有任何方法可以从管道调试这个 API 调用,它是唯一失败的地方。

那么,您对如何在 Cypress 中的一个步骤中保存 XHR Payload 有什么建议吗?

  • 将其存储在 mocha 报告中。
  • 通过电子邮件发送。
  • 可能会将其添加到日志中。
  • 将其保存为工件。 抱歉,我不知道如何解决这个问题,因为我既不是 cypress 也不是 bitbucket 管道方面的专家。

更具体地说,我需要调试这个调用:

【问题讨论】:

  • 我没有完整的答案,但您可能只需要编写一个 Node 脚本来执行此操作,然后在您的测试中使用 cy.task() 调用它。

标签: javascript automated-tests mocha.js cypress mochawesome


【解决方案1】:

据我了解,您的外部 API 调用 URL 是已知的,对吗?如果是这样,我建议出于调试目的路由此调用,然后将其显示在 cypress 运行日志中,以便您能够比较请求有效负载:

cy.route({ method: 'POST', url: `/ps/users`}).as('routedRequest');

... 

cy.get('@routedRequest').then((xhr) => {
    cy.log(JSON.stringify(xhr.request))
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    相关资源
    最近更新 更多