赛普拉斯:如何编写测试以处理缓慢的后端服务?

问题描述

我正在开发一个赛普拉斯测试仪,用于验证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 containsnpm cypress-wait-until来解决等待缓慢的后端服务响应的问题。