问题描述
我们的 cypress 套件在每个机器、环境和位置都可以在本地正常运行。 我们已将其配置为与 Bitbucket 管道一起使用,但由于它进行的 API 调用,有一个特定步骤始终失败。此 API 调用是对外部服务进行的,我们正在根据请求动态构建的负载中添加参数。
我们怀疑其中一些参数在从管道运行时没有正确构建(可能与位置、代理等有关),因为我们得到“未经授权”。
所以问题是我们没有任何方法可以从管道调试这个 API 调用,它是唯一失败的地方。
那么,对于如何在 Cypress 中的一个步骤中保存 XHR Payload,您有什么建议吗?
- 将其存储在 mocha 报告中。
- 通过电子邮件发送。
- 也许可以将其添加到日志中。
- 将其另存为工件。 很抱歉,我只是不知道如何处理这个问题,因为我既不是 cypress 也不是 bitbucket 管道的专家。
更具体地说,我需要调试这个调用:
解决方法
据我所知,您的外部 API 调用 URL 是已知的,对吗?如果是这样,我建议出于调试目的路由此调用,然后将其显示在 cypress 运行日志中,以便您可以比较请求有效负载:
cy.route({ method: 'POST',url: `/ps/users`}).as('routedRequest');
...
cy.get('@routedRequest').then((xhr) => {
cy.log(JSON.stringify(xhr.request))
});