Add framework for selenium tests on test slaves.
Fixes bug #996190 Add framework to run selenium tests on the test slaves. This includes installing the firefox and Xvfb packages, wrapping Horizon selenium tests with a script that creates an Xvfb X server, and running the Horizon selenium tests as check tests. The framework assumes selenium tests will use the WebDriver API and not need any other pieces of selenium (No selenium server etc). Change-Id: I4f4cc502276890d617b5baaadf5f8a6eae1ba1ff
This commit is contained in:
parent
8c001acda4
commit
254bb0f488
@ -100,6 +100,9 @@ for f in `find . -iname *.erb` ; do
|
||||
done
|
||||
""")
|
||||
|
||||
def _builder_selenium(self, xml_parent):
|
||||
self._add_script(xml_parent, '/usr/local/jenkins/slave_scripts/run-selenium.sh')
|
||||
|
||||
def _builder_shell(self, xml_parent, data):
|
||||
self._add_script(xml_parent, data)
|
||||
|
||||
|
@ -21,3 +21,31 @@ values:
|
||||
tarball_project: 'horizon'
|
||||
doc_publisher_site: 'docs.openstack.org'
|
||||
node: 'precise'
|
||||
|
||||
---
|
||||
# gate-horizon-selenium
|
||||
main:
|
||||
name: 'gate-horizon-selenium'
|
||||
review_site: 'review.openstack.org'
|
||||
github_org: 'openstack'
|
||||
project: 'horizon'
|
||||
concurrent: 'true'
|
||||
|
||||
logrotate:
|
||||
daysToKeep: 28
|
||||
numToKeep: -1
|
||||
artifactDaysToKeep: -1
|
||||
artifactNumToKeep: -1
|
||||
|
||||
triggers:
|
||||
- zuul
|
||||
|
||||
builders:
|
||||
- gerrit_git_prep
|
||||
- selenium
|
||||
|
||||
scm:
|
||||
scm: 'false'
|
||||
|
||||
assignednode:
|
||||
node: 'precise'
|
||||
|
28
modules/jenkins_slave/files/slave_scripts/run-selenium.sh
Executable file
28
modules/jenkins_slave/files/slave_scripts/run-selenium.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash -xe
|
||||
|
||||
# If a bundle file is present, call tox with the jenkins version of
|
||||
# the test environment so it is used. Otherwise, use the normal
|
||||
# (non-bundle) test environment. Also, run pip freeze on the
|
||||
# resulting environment at the end so that we have a record of exactly
|
||||
# what packages we ended up testing.
|
||||
#
|
||||
|
||||
venv=venv
|
||||
|
||||
VDISPLAY=99
|
||||
DIMENSIONS='1280x1024x24'
|
||||
/usr/bin/Xvfb :${VDISPLAY} -screen 0 ${DIMENSIONS} 2>&1 > /dev/null &
|
||||
|
||||
set +e
|
||||
DISPLAY=:${VDISPLAY} tox -e$venv -- /bin/bash run_tests.sh -N --with-selenium
|
||||
result=$?
|
||||
|
||||
pkill Xvfb 2>&1 > /dev/null
|
||||
set -e
|
||||
|
||||
echo "Begin pip freeze output from test virtualenv:"
|
||||
echo "======================================================================"
|
||||
.tox/$venv/bin/pip freeze
|
||||
echo "======================================================================"
|
||||
|
||||
exit $result
|
@ -32,6 +32,7 @@ class jenkins_slave($ssh_key, $sudo = false, $bare = false, $user = true) {
|
||||
"docbook5-xml", # for building openstack docs
|
||||
"docbook-xsl", # for building openstack docs
|
||||
"ebtables",
|
||||
"firefox", # for selenium tests
|
||||
"gawk",
|
||||
"graphviz",
|
||||
"iptables",
|
||||
@ -73,6 +74,7 @@ class jenkins_slave($ssh_key, $sudo = false, $bare = false, $user = true) {
|
||||
"vlan",
|
||||
"wget",
|
||||
"xsltproc", # for building openstack docs
|
||||
"xvfb", # for selenium tests
|
||||
"pyflakes"]
|
||||
|
||||
if ($bare == false) {
|
||||
|
@ -169,6 +169,7 @@ projects:
|
||||
- gate-horizon-pep8
|
||||
- gate-horizon-python26
|
||||
- gate-horizon-python27
|
||||
- gate-horizon-selenium
|
||||
- gate-tempest-devstack-vm
|
||||
gate:
|
||||
- gate-horizon-merge:
|
||||
|
Loading…
Reference in New Issue
Block a user