有没有办法在赛普拉斯 运行 中保存完整的 XHR 有效负载?

Is there any way to save a full XHR payload in a cypress run?

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

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

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

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

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

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

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

... 

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