2014-02-25 4 views
9

Ich verwende CircleCI und möchte Huxley-Tests durchführen.Selen-Test mit CircleCI

Aber dafür brauche ich Selen Server laufen.

Ich habe versucht, selen server standalone jar zu betreiben. Das ist keine Lösung.

Bitte helfen Sie, wenn Sie etwas wissen.

Antwort

28

Die meisten Browser-Test-Frameworks enthalten Selenium für Sie.

dependencies: 
    post: 
     - wget https://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar 
     - java -jar selenium-server-standalone-2.44.0.jar: 
      background: true 

, dass die neueste Standalone Selenium jar herunterladen und sie im Hintergrund ausgeführt werden: Wenn Sie einen eigenständigen Selenium-Server ausgeführt werden müssen, können Sie Folgendes in einer circle.yml in Ihrem Repo-Stammverzeichnis hinzufügen. Beachten Sie den Doppelpunkt am Ende des zweiten Befehls und die 4 Leerzeichen Einrückung von "background: true". Das weist YAML an, background als einen Modifizierer für den Befehl zu behandeln.

Mehr Dokumentation hier:

https://circleci.com/docs/background-process

https://circleci.com/docs/installing-custom-software

HINWEIS:, wenn Sie den Link zu JAR in dieser Antwort aktualisieren, bitte stellen Sie sicher, dass es HTTPS ist. Es wird allgemein als gefährlich erachtet, etwas über unsicheres HTTP herunterzuladen und es einfach auszuführen, ohne die Prüfsummen zu überprüfen, da ein Man-in-the-Middle-Angriff die JAR-Ersetzung/Manipulation zur Folge haben kann.

+0

Das ist genau das, was ich brauchte! Vielen Dank. –

+2

Und ich denke immer noch, dass der CirceCI die beste CI bisher ist! –

+0

Das Problem mit dieser Lösung ist, dass Selenium-, Chromedriver- und Chrome-Versionen zusammenpassen sollten, damit alles zusammen funktioniert, daher meine Antwort unten. –

5

Installieren Sie den vollständigen Stapel von Selen, chromedriver und Chrom:

dependencies: 
    pre: 

    # Install Selenium. 
    - curl http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.1.jar > selenium-server-standalone.jar 
    - curl http://chromedriver.storage.googleapis.com/2.23/chromedriver_linux64.zip | gzip -dc > chromedriver 
    - chmod +x chromedriver 
    - 'java -jar selenium-server-standalone.jar -trustAllSSLCertificates -Dwebdriver.chrome.driver=chromedriver': 
     background: true 
    # Update Google Chrome. 
    - google-chrome --version 
    - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
    - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb stable main" >> /etc/apt/sources.list.d/google.list' 
    - sudo apt-get update 
    - sudo apt-get --only-upgrade install google-chrome-stable 
    - google-chrome --version 
+0

Ihr 'curl'-Befehl für den Chrom-Treiber funktioniert nicht. Sie können für die Dekomprimierung keine 'zip' nach' gzip' pipen. Sie zwei (2) verschiedene, inkompatible Kompressionsschemata. Folgendes funktioniert jedoch: 'curl https://chromedriver.storage.googleapis.com/2.33/chromedriver_mac64.zip -O && entpacken chromedriver_mac64.zip' – javafueled

+0

@javafueled Wie es nicht funktioniert, wenn es an mehr als 20 Projekten gearbeitet hat –

+0

[Kann 'gunzip' ein .zip-Archiv extrahieren?] (Http://www.gzip.org/#faq17). 'gunzip' ist nur' gzip -d'. Jedes Mal, wenn ich dies versuche, wird mir 'gzip: unknown compression format' (mit Linux- und Mac-Versionen) gesagt. Ich, respektvoll, bin immer noch nicht davon überzeugt, dass die Pfeife das tut, was die Pfeife angeblich tut. – javafueled