0

Nous avons une énorme quantité de htmlsuite deisgned par l'analyste d'affaires et nous voulons les lancer automatiquement pendant l'intégration continue (ou chaque nuit). Le problème est que la machine avec le sélénium-RC n'est pas le même que l'intégration continue:Comment lancer Selenium htmlSuite sur un serveur RC distant?

En java, nous avons utilisé le client-pilote et il fonctionne très bien:

selenium = new DefaultSelenium(serverAddress, SERVER_PORT, browser, url); 
selenium.start(); 

puis selenium.click (..) etc ..

Si j'utilise un seleniumServer que j'ai créé et lancé en java, je peux lancer HTMLSuite, il fonctionne très bien aussi:

RemoteControlConfiguration rcc = new RemoteControlConfiguration(); 
rcc.setPort(SelHelper.SERVER_PORT); 
seleniumServer = new SeleniumServer(rcc); 
seleniumServer.start(); 
HTMLLauncher launcher = new HTMLLauncher(seleniumServer); 

Si je lance un ind serveur de sélénium ependantly (par ex. serveur distant) et j'essaie d'utiliser le htmlLauncher, je ne le fait pas car il prend comme argument un SeleniumServer auquel je ne peux pas accéder ...

Quelqu'un a une solution?

Le plan B serait de lancer en SSH de l'intégration continue d'un fichier .cmd sur la machine RC de sélénium contenant quelque chose comme:

java -jar "X:\01_Robot\SELENIUM_RC\selenium-server-1.0.1\selenium-server.jar" -htmlSuite "*firefox" "http://www.myapplication.com" "X:\mytestsuite.html" 

Mais ce serait laid et je veux le faire que si je don pas le choix.

Répondre

1

J'ai implémenté un exemple de configuration de grille de pilote Web à distance dans this project on Github here. Vous pourriez être capable de glaner de bonnes informations. Voir les deux scripts .bat "startWebDriverGridHub.bat" et "startWebDriverGridNode.bat". Exécutez le premier sur votre machine locale où vous développez (ou sur votre serveur Jenkins) et exécutez ce dernier sur la machine distante.

Je ne recommanderais pas de commencer la grille comme vous l'avez fait, même si c'est faisable, je dirais que c'est hors de portée d'une simple question de pile.

De même, n'utilisez pas HtmlClientDriver. Si vous voulez sans tête, regardez le pilote PhantomJS. Si votre intention réelle est de conduire un navigateur sur le bureau des ordinateurs distants, j'utiliserais "RemoteWebDriver" sous la forme de pilote Firefox, Chrome, ou pilote IE, via les scripts que j'ai fournis ci-dessus.

Questions connexes