Die Nutzung von Sauce Labs zusammen mit dem Robot-
Framework ist ähnlich einem eigenen Selenium-Grid. Vor allem erfordert es, dass
die Browser Passwörter eingeben können. Dies kann mit einigen wenigen Variablen
in vs_buildout/src/vs.registration/src/vs/registration/tests/robot_test.txt
konfiguriert werden:
*** Settings ***
Library Selenium2Library timeout=10 implicit_wait=0.5
Suite Setup Start browser
Suite Teardown Close All Browsers
*** Variables ***
${ZOPE_HOST} = localhost
${ZOPE_PORT} = 55001
${ZOPE_URL} = http://${ZOPE_HOST}:${ZOPE_PORT}
${PLONE_SITE_ID} = plone
${PLONE_URL} = ${ZOPE_URL}/${PLONE_SITE_ID}
${BROWSER} = Firefox
${REMOTE_URL} =
${DESIRED_CAPABILITIES} = platform:Linux
${BUILD_NUMBER} = manual
*** Test Cases ***
Plone site
[Tags] start
Go to ${PLONE_URL}
Page should contain Plone site
*** Keywords ***
Start browser
${BUILD_INFO} = Set variable
... build:${BUILD_NUMBER},name:${SUITE_NAME} | ${TEST_NAME}
Open browser ${PLONE_URL} ${BROWSER}
... remote_url=${REMOTE_URL}
... desired_capabilities=${DESIRED_CAPABILITIES},${BUILD_INFO}
Die Variablen bedeuten im Einzelnen:
ZOPE_HOST
Angabe for den Host des ZServer.
Dar Standardwert ist localhost
. For Tests mit dem Internet Explorer ist
jedoch die Angabe 0.0.0.0
erforderlich.
ZOPE_PORT
Angabe des Ports, an dem der ZServer lauscht.
Der Standardwert ist 55001
.
ZOPE_URL
Root-Variable für die URL der Zope-Anwendung.
PLONE_SITE_ID
ID der Plone-Site.
PLONE_URL
URL der Plone-Site.
BROWSER
Browser, mt dem der Test durchgeführt werden soll.
REMOTE_URL
URL des zu verwendenden Selenium-Hubs.
DESIRED_CAPABILITIES
spezifiziert verschiedene Parameter des Selenium-Hubs, z.B. die Browser- Version.
BUILD_NUMBER
Travis-CI-Build auf Sauce Labs.
Nun wird eine .travis.yml
-Datei erstellt um Travis-CI mitzuteilen, welches
Envirinment verwendet und welche Tests ausgeführt werden sollen:
---
language: python
python: '2.7'
install:
- mkdir -p buildout-cache/eggs
- mkdir -p buildout-cache/downloads
- python bootstrap.py -c travis.cfg
- ./bin/buildout -N -t 3 -c travis.cfg
- curl -O http://saucelabs.com/downloads/Sauce-Connect-latest.zip
- unzip Sauce-Connect-latest.zip
- java -jar Sauce-Connect.jar $SAUCE_USERNAME $SAUCE_ACCESS_KEY -i $TRAVIS_JOB_ID -f CONNECTED &
- JAVA_PID=$!
before_script:
- bash -c "while [ ! -f CONNECTED ]; do sleep 2; done"
script: ./bin/test
after_script:
- kill $JAVA_PID
env:
global:
- ROBOT_BUILD_NUMBER=travis-$TRAVIS_BUILD_NUMBER
- ROBOT_REMOTE_URL=http://$SAUCE_USERNAME:$SAUCE_ACCESS_KEY@ondemand.saucelabs.com:80/wd/hub
matrix:
- ROBOT_BROWSER=firefox ROBOT_DESIRED_CAPABILITIES=tunnel-identifier:$TRAVIS_JOB_ID
- ROBOT_BROWSER=chrome ROBOT_DESIRED_CAPABILITIES=tunnel-identifier:$TRAVIS_JOB_ID
- ROBOT_BROWSER=internetexplorer ROBOT_DESIRED_CAPABILITIES=tunnel-identifier:$TRAVIS_JOB_ID
SAUCE_USERNAME
und SAUCE_ACCESS_KEY
Nutzername und Passwort verschlüsselt als Umgebungsvariable.
travis encrypt
schreibt die verschlüsselten Werte direkt in die .travis.yml
-Datei:
$ travis encrypt SAUCE_USERNAME=myusername -r mygithubname/example.product --add env.global
$ travis encrypt SAUCE_ACCESS_KEY=myaccesskey -r mygithubname/example.product --add env.global
matrix
Aktuell erlaubt Sauce Labs drei gleichzeitige Verbindungen für Open-Source- Projekte, z.B. für drei verschiedene Browser.
Achten Sie bei Open-Source-Projekten darauf, dass Sie nicht Ihren privaten Zugang nutzen sondern denjenigen des Projekts. Hierfür ist die öffentliche URL des Repository erforderlich.
Schließlich sollten die Travis-CI-Tests für Ihr Produkt auf Travis-CI.org oder GitHub eingerichtet werden.