J'ai une application Rails 5.0.5 avec des tests de fonctionnalités écrits en utilisant Capybara et Selenium (chromedriver). J'utilise aussi le printemps. Lorsque j'exécute mes tests de fonctionnalité, la première demande à mon application prend environ 45 secondes, après quoi les temps de requête sont normaux.Pourquoi mes tests de fonctionnalités démarrent-ils lentement avec Rails, Selenium et Spring?
Je voudrais comprendre pourquoi cette première requête est lente et la rend plus rapide - c'est un problème important.
Je me suis fixé le niveau de journal sur le sélénium pour debug: Selenium::WebDriver.logger.level = :debug
puis je vois ceci:
017-10-06 10:40:53 INFO Selenium >>> http://127.0.0.1:9516/session/d61353b6a9b514302b0146b398250ac6/url | {"url":"http://lvh.me:65483/logout"}
2017-10-06 10:40:53 DEBUG Selenium > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=utf-8", "Content-Length"=>"36"}
DEPRECATION WARNING: You didn't set `secret_key_base`. Read the upgrade documentation to learn more about this new config option. (called from env_config at /Users/johnnaegle/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/railties-5.0.5/lib/rails/application.rb:246)
À ce stade, sa frappe la première URL dans mon test (/ fermeture de session) et le navigateur lancé (mais accroché). Le processus de rails est en cours d'exécution et quand il se termine, cela apparaît dans les journaux du serveur:
[e97dc298-2ac5-4f29-b07c-58b0cc4e8827] Started GET "/logout" for 127.0.0.1 at 2017-10-06 10:45:16 -0500
[e97dc298-2ac5-4f29-b07c-58b0cc4e8827] Processing by UserSessionsController#destroy as HTML
[e97dc298-2ac5-4f29-b07c-58b0cc4e8827] Redirected to http://lvh.me:53531/login
[e97dc298-2ac5-4f29-b07c-58b0cc4e8827] Completed 302 Found in 834ms (ActiveRecord: 0.0ms)
[9a296768-7b0a-41f0-9eea-a95414f8a81d] Started GET "/login" for 127.0.0.1 at 2017-10-06 10:45:17 -0500
...
[9a296768-7b0a-41f0-9eea-a95414f8a81d] Completed 200 OK in 43621ms (Views: 43571.7ms | ActiveRecord: 21.8ms)
Je suis sur l'osx.
Si je regrouper une console de rails (en court-circuitant le ressort), charger mon application avec impatience et quitter, cela prend 22 secondes.
Comment puis-je savoir pourquoi mon premier test de fonctionnalité prend 45 secondes? Je pensais que le but du printemps était de rendre les heures de début et de première demande rapides, mais cela ne semble pas être le cas.
Personne ne vous doit un commentaire avec un downvote, ils sont de conception anonyme. N'appelez pas encore les downvoters "lâches", ceci est [complètement indésirable ici] (https://stackoverflow.com/help/be-nice). – meagar
Il serait beaucoup plus utile d'indiquer ce qui n'allait pas avec la question - cela semblait être une question raisonnable. Si j'avais pu fournir plus de détails, ou si je l'avais demandé d'une meilleure façon, j'aimerais savoir. –
la downvote est injustifiée, c'est un vrai problème pratique qui mérite une réponse et une discussion. @meager - votre commentaire est techniquement correct mais complètement inutile. lâche. – Rob