首页 > 解决方案 > 带有 Selenium 的 Capybara 加载页面时间过长导致 Net::ReadTimeout 错误

问题描述

我目前正在运行测试应用程序不同功能的水豚规范。运行我的规范时,似乎没有足够快地到达页面以进行测试。我目前有三个规格,最终需要 9 分钟才能让它们都因同样的错误而失败。这是运行规范的结果

Randomized with seed 38457
Capybara starting Puma...
* Version 3.11.4 , codename: Love Song
* Min threads: 0, max threads: 4
* Listening on tcp://127.0.0.1:50109
FFF

Failures:

1) Successful source is created
 Got 0 failures and 2 other errors:

 1.1) Failure/Error: visit ('/clients/new')

      Net::ReadTimeout:
        Net::ReadTimeout
      # ./spec/qa/variables.rb:12:in `login_user'
      # ./spec/qa/successful_source_spec.rb:7:in `block in (root)'

 1.2) Failure/Error: @io.to_io.wait_readable(@read_timeout) or raise Net::ReadTimeout

      Net::ReadTimeout:
        Net::ReadTimeout

另请注意,我正在使用带有无头铬的硒。我可以做些什么来加快页面加载速度以便进行测试?这也是这些规范第一次运行。

标签: seleniumrspeccapybarapuma

解决方案


我决定快速解决这个问题。事实证明,在测试超时之前,rails 服务器连接到页面的速度不够快。我决定将默认等待时间更改spec_helper.rb为 120 秒。第一次运行规范需要更长的时间,但从那时起它们最终会连接并顺利运行。我认为这不是最佳实践,但它确实提供了一个快速修复来开始测试您的规格。


推荐阅读