有没有办法在 cypress 运行中保存完整的 XHR 有效负载?

问题描述

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

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

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

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

  • 将其存储在 mocha 报告中。
  • 通过电子邮件发送。
  • 也许可以将其添加到日志中。
  • 将其另存为工件。 很抱歉,我只是不知道如何处理这个问题,因为我既不是 cypress 也不是 bitbucket 管道的专家。

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

enter image description here

解决方法

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

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

... 

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...