J'essaie d'obtenir une application Dockerized pour mon application de testeur. J'utilise le hub public et les images de noeud pour créer une grille Selenium qui fonctionne bien - je peux exécuter mes tests localement sur la grille Dockerized. Maintenant, tout ce que je dois faire est Dockerize mon code d'application de test et l'exécuter contre la grille. J'ai créé un fichier Docker-composer pour configurer la grille puis exécuter le code de test. Malheureusement, lorsque les tests sont exécutés à partir du conteneur Docker, ils ne semblent pas pouvoir se connecter au concentrateur. J'ai vérifié les journaux du conteneur de testeurs et j'ai vu quelques résultats de la première étape du test. Il se bloque alors là pour environ une minute et produit les éléments suivants:Comment puis-je exécuter des tests d'interface utilisateur sélénium sur une grille à partir du conteneur docker?
Net::ReadTimeout (Net::ReadTimeout)
Je bombardé dans le conteneur de lanceur de test docker et a pu ping le centre de là, je crois que oui le coureur de test peut parler au moyeu. J'ai spécifié ma configuration du pilote comme ceci:
Capybara.register_driver :remote_hub_chrome do |app|
caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps.version = "59.0.3071.115"
caps.platform = "LINUX"
Capybara::Selenium::Driver.new(
app,
:browser => :chrome,
:url => "http://hub-container:4444/wd/hub",
:desired_capabilities => caps
)
end
Comme vous pouvez le voir, il va essayer de frapper le domaine centre-conteneur, il devrait pouvoir depuis que je peux le ping à l'intérieur du conteneur.
Je ne vois aucune information de journal sur le conteneur de nœud du navigateur, il semblerait donc qu'il n'ait même pas été tenté d'être atteint. Je suis capable d'exécuter exactement le même test à partir de ma machine locale à l'extérieur du conteneur docker. La seule différence est que je dois changer hub-container en localhost puisque je ne suis plus en cours d'exécution depuis le conteneur.
Quelqu'un at-il une idée de la raison pour laquelle je ne peux pas lancer le test depuis un conteneur docker?
fichier Compose:
version: "3"
services:
hub:
image: selenium/hub
ports:
- "4444:4444"
networks:
- ui-test
firefox:
image: selenium/node-firefox-debug
ports:
- "5900"
depends_on:
- hub
environment:
- HUB_PORT_4444_TCP_ADDR=hub
- HUB_PORT_4444_TCP_PORT=4444
networks:
- ui-test
chrome:
image: selenium/node-chrome-debug
ports:
- "5900"
depends_on:
- hub
environment:
- HUB_PORT_4444_TCP_ADDR=hub
- HUB_PORT_4444_TCP_PORT=4444
networks:
- ui-test
test-runner:
image: test-runner
depends_on:
- hub
- chrome
- firefox
networks:
- ui-test
networks:
ui-test:
driver: bridge
Publiez votre fichier de composition –
ajouté composez le fichier – Barodapride