尽管我很喜欢 Cypress,但结果开始变得很糟糕。我不认为我会做一些根本错误的事情。我已经阅读了几次最佳实践,但我看不出我真正可以改进什么。
开始变得相当令人沮丧。让测试在本地计算机上完美运行(尝试连续运行多次),但当相同的代码通过 CI(当前为 Bitbucket Pipelines)运行时,多个测试会因奇怪的原因失败。
例如,单击列表中的某个项目即可在购物车中添加单个项目。工作完美,但我试图打破它,但 CI 中的相同测试由于某种原因导致该点击发生两次。这是我至少能够描述的一个问题。其他的则不正常,并且经常随机发生,就像该元素不可见一样,但查看屏幕截图我可以看到很好。
我尝试使用
cypress-failed-log
插件来查看命令日志,但这并没有真正帮助,因为它与我在本地看到的内容相同,但在 CI 中失败。我在 Cypress Dashboard 中看到的视频也没有多大帮助,因为它通常太快,有些东西甚至在那里看不到。
有人可以建议我一些其他选择,如何更优雅地处理手头的问题吗?我必须承认我正处于放弃这些测试的边缘,因为要使它们可靠需要太多时间。
有关我的设置的一些详细信息:
[email protected]
[email protected]
[email protected]
# job definition for running E2E tests in parallel
e2e: &e2e
name: E2E tests
image: cypress/browsers:chrome67-ff57
caches:
- yarn
- home-cache
script:
- yarn -v
- cd cypress
- yarn install --frozen-lockfile
- npx @bahmutov/print-env BITBUCKET
- yarn ci --parallel --ci-build-id $BITBUCKET_BUILD_NUMBER
奇怪,你在本地测试时使用同一个浏览器吗? 您使用额外的 npm 软件包,也许您可以删除所有非必需品并重试?
Cypress 3.3.0 声称修复了缓慢的网络请求。这可能与 CircleCI 测试失败有关。
在 Cypress 3.1.4 中,@danielschwartz85 报告说,他们在发出正常的获取请求时发现网络速度缓慢。情况太糟糕了,他们报告称 Cypress 中的加载时间为 5.5 秒,而普通浏览器中的加载时间为 300 毫秒 - 对于此测试用例,Cypress 中的 HTTP 请求运行速度比 Chrome 中慢 18 倍。 Cypress 的很大一部分是它的行为应该像普通的网络浏览器一样,所以这是一个主要问题。用户期望 Cypress “表现得像 Chrome”,而不是“表现得像 Chrome 但慢 18 倍”。因此,我们开始调查这种缓慢的根源。
我来自未来告诉你,在 Cypress 13^ 中我们仍然存在同样的问题。