QA/Execution/Web Testing/Automation/Selenium Grid: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 2: Line 2:
moz-grid-config is a project for managing our Selenium infrastructure. It includes the latest version of Selenium that we're using, and a mechanism for starting the hub/nodes. You can find documentation on moz-grid-config at the [https://github.com/mozilla/moz-grid-config github project page].
moz-grid-config is a project for managing our Selenium infrastructure. It includes the latest version of Selenium that we're using, and a mechanism for starting the hub/nodes. You can find documentation on moz-grid-config at the [https://github.com/mozilla/moz-grid-config github project page].


== Architecture ==
== Selenium Grid Hub ==
 
=== Hub ===
The Selenium Grid hub is running on a VM in our data-center. For setup and administration see our [https://mana.mozilla.org/wiki/display/QA/selenium-hub1.qa.scl3.mozilla.com internal Mana page].
The Selenium Grid hub is running on a VM in our data-center. For setup and administration see our [https://mana.mozilla.org/wiki/display/QA/selenium-hub1.qa.scl3.mozilla.com internal Mana page].


=== Nodes ===
== Selenium Grid Nodes ==
We have several Mac minis running as Selenium nodes and 6 VMs running Windows nodes in our data-center.
We have several Mac minis running as Selenium nodes and 6 VMs running Windows nodes in our data-center.


==== Mac OS X ====
=== Mac OS X ===
* '''selenium'''.qa.mtv2.mozilla.com (10.252.73.143)
* '''selenium'''.qa.mtv2.mozilla.com (10.252.73.143)
** Mac Mini; 2.7 Ghz Intel Core i7; 8 GB  
** Mac Mini; 2.7 Ghz Intel Core i7; 8 GB  
Line 26: Line 24:
** Mac OS X 10.7.4, 2.5 GHz Intel Core i5; 4GB 1067 MHz DDR3
** Mac OS X 10.7.4, 2.5 GHz Intel Core i5; 4GB 1067 MHz DDR3


==== Windows ====
=== Windows ===
* '''selenium1'''.qa.scl3.mozilla.com (10.22.73.149)
* '''selenium1'''.qa.scl3.mozilla.com (10.22.73.149)
** Windows 7, 8 GB RAM, 2 cores, 150GB disk
** Windows 7, 8 GB RAM, 2 cores, 150GB disk
Line 40: Line 38:
** Windows 7, 8 GB RAM, 2 cores, 150GB disk
** Windows 7, 8 GB RAM, 2 cores, 150GB disk


== Operations ==
=== Starting Mac OS X nodes ===
 
=== Hub ===
For details on administering hub operations see our [https://mana.mozilla.org/wiki/display/QA/selenium-hub1.qa.scl3.mozilla.com internal Mana page].
 
=== Nodes ===
 
==== Starting Mac OS X nodes ====
Connect to the appropriate machine, and execute the following from a terminal (you can use SSH or VNC):
Connect to the appropriate machine, and execute the following from a terminal (you can use SSH or VNC):


Line 61: Line 52:
We need the <code>-autoproxy</code> helper because the these nodes run through a proxy.
We need the <code>-autoproxy</code> helper because the these nodes run through a proxy.


==== Stopping nodes ====
=== Stopping nodes ===
Terminate the process using Ctrl+C.
Terminate the process using Ctrl+C.


=== Adding a Browser ===
== Adding a Browser ==


==== Configuration ====
=== Configuration ===
You will need to fork and clone from the [https://github.com/mozilla/moz-grid-config moz-grid-config github repository] and work on a new branch.
You will need to fork and clone from the [https://github.com/mozilla/moz-grid-config moz-grid-config github repository] and work on a new branch.
# Add the browser, alias, and path to <code>grid_configuration.yml</code>.
# Add the browser, alias, and path to <code>grid_configuration.yml</code>.
Line 72: Line 63:
# Submit a pull request to the main GitHub repository from your branch.
# Submit a pull request to the main GitHub repository from your branch.


==== Hub/Nodes ====
=== Hub/Nodes ===
# Prepare Jenkins for shutdown - this will allow all currently running jobs to finish, but will not start any new jobs.
# Prepare Jenkins for shutdown - this will allow all currently running jobs to finish, but will not start any new jobs.
# Once no jobs are running, stop the Selenium Grid hub
# Once no jobs are running, stop the Selenium Grid hub
Line 83: Line 74:
## Start the Selenium server
## Start the Selenium server


==== Installing Firefox ====
== Installing Firefox ==
* All new browsers should be installed with the version number in the path so that moz-grid-config can always find them.
* All new browsers should be installed with the version number in the path so that moz-grid-config can always find them.
* Install [http://pypi.python.org/pypi/mozdownload mozdownload] and [http://pypi.python.org/pypi/mozinstall mozinstall] using pip to download and install the Firefox binaries.
* Install [http://pypi.python.org/pypi/mozdownload mozdownload] and [http://pypi.python.org/pypi/mozinstall mozinstall] using pip to download and install the Firefox binaries.
Line 92: Line 83:
** Releases are also available to download manually [http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ here]
** Releases are also available to download manually [http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ here]


===== Mac OS X =====
=== Mac OS X ====
From a terminal:
From a terminal:


Line 100: Line 91:
     rm /tmp/firefox-14.0.1.en-US.mac.dmg
     rm /tmp/firefox-14.0.1.en-US.mac.dmg


===== Windows =====
=== Windows ===
From a command prompt:
From a command prompt:


Line 128: Line 119:


The output will display the FQDN of the computer.
The output will display the FQDN of the computer.
== Updating the Grid (step by step) ==
 
== Updating ==
Before updating the Grid we need to test locally with the latest Firefox and Selenium versions.
Before updating the Grid we need to test locally with the latest Firefox and Selenium versions.
# You will need to fork and clone from the [https://github.com/mozilla/moz-grid-config moz-grid-config github repository] and work on a new branch (latest-version) (see [[#Configuration|Configuration]].
# You will need to fork and clone from the [https://github.com/mozilla/moz-grid-config moz-grid-config github repository] and work on a new branch (latest-version) (see [[#Configuration|Configuration]].
Line 137: Line 129:
# After changes are merged into the main GitHub repository, move the main Grid to run on "latest-version" branch.
# After changes are merged into the main GitHub repository, move the main Grid to run on "latest-version" branch.
# Once testing on the main Grid instance is successful, merge the latest-version branch into master and switch back to the master branch on the hub and nodes.
# Once testing on the main Grid instance is successful, merge the latest-version branch into master and switch back to the master branch on the hub and nodes.
== References ==
* [http://qa-selenium.mv.mozilla.com:8080/ Jenkins dashboard]
* [http://qa-selenium.mv.mozilla.com:4444/console Selenium Grid console]
* [https://github.com/mozilla/moz-grid-config moz-grid-config on github]
Confirmed users
2,177

edits