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.