问题描述
我正在开发一个赛普拉斯测试仪,用于验证React网站从 STAGE 到 DEMO 到 PROD 。 React组件是使用Redux从多个后端服务提取数据生成的。
对于 DEMO 和 PROD ,后端服务的性能最佳,并且加载React组件的延迟最小,最长为5秒。
对于 STAGE ,React组件的加载确实存在明显的延迟,从30秒到120秒不等。但是,这些组件最终会渲染。
Cypress测试在 DEMO 和 PROD 上都可以100%正常运行。我在timeout
中将默认cypress.json
设置为 60000毫秒,但是对于这些部署环境来说,不需要这么长的默认超时时间。
但是,相同的赛普拉斯测试在 STAGE 部署中针对同一React站点运行,cy.visit()
和cy.get()
经常失败,即使我将超时设置为 120000毫秒。即使将retry添加到3,它也会失败。
那么,由于后端服务的不可预测响应,如何最好地解决赛普拉斯等待React组件加载的问题?
谢谢,非常感谢您的帮助
解决方法
@MarionMorrison @AlapanDas,谢谢您的回复
我确实在另一个帖子中解决了这个问题,当时我没有意识到是同一问题:
Cypress: Wait for unpredictable component to render from an exclusive set?
我一直在使用Cypress contains
和npm cypress-wait-until来解决等待缓慢的后端服务响应的问题。