Selenium/PHP/Selenium Configuration
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. See Selenium instead. |
This is detailed information for setting up the Selenium framework.
Enable Selenium on your test Wiki
editSet the following in your test wiki's LocalSettings.php:
$wgEnableSelenium = true;
The tests runner is a maintenance script maintenance/tests/RunSeleniumTests.php
The next sections cover how you can tell the test runner about your selenium environment.
Configure Selenium using a configuration file
edit- The easiest way is to point the test runner to your selenium configuration file through the command line option.
php RunSeleniumTests.php --seleniumConfig=../../selenium_settings.ini Using Selenium Configuration file: ../../selenium_settings.ini ....
- If the --seleniumConfig option is not found and in the absense of a hook, it looks for a global variable $wgSeleniumConfigFile that you can set in your LocalSettings.php
$wgSeleniumConfigFile = $IP . '/selenium_settings.ini';
php RunSeleniumTests.php No command line configuration file or configuration hook found. ....
Sample configuration to run on a local machine
editA sample configuration is checked into maintenance/tests/selenium/selenium_settings.ini.sample
[SeleniumSettings] ; Set up the available browsers that Selenium can control. browsers[firefox] = "*firefox" browsers[iexplorer] = "*iexploreproxy" browsers[chrome] = "*chrome" ; The simple configurations above usually work on Linux, but Windows and ; Mac OS X hosts may need to specify a full path: ;browsers[firefox] = "*firefox /Applications/Firefox.app/Contents/MacOS/firefox-bin" ;browsers[firefox] = "*firefox C:\Program Files\Mozilla Firefox\firefox.exe" host = "localhost" port = "4444" wikiUrl = "http://localhost/deployment" username = "wikiuser" userPassword = "wikipass" testBrowser = "firefox" startserver = stopserver = jUnitLogFile = runAgainstGrid = false ; To let the test runner start and stop the selenium server, it needs the full ; path to selenium-server.jar from the selenium-remote-control package. seleniumserverexecpath = "/opt/local/selenium-remote-control-1.0.3/selenium-server-1.0.3/selenium-server.jar" [SeleniumTests] testSuite[SimpleSeleniumTestSuite] = "maintenance/tests/selenium/suites/SimpleSeleniumTestSuite.php" testSuite[PagedTiffHandlerSeleniumTestSuite] = "extensions/PagedTiffHandler/selenium/PagedTiffHandlerTestSuite.php"
- Hint: seleniumserverexecpath not yet implemented for Windows.
Sample configuration to run against a selenium grid
editA sample configuration is checked into maintenance/tests/selenium/selenium_settings_grid.ini.sample
[SeleniumSettings] host = "grid.tesla.usability.wikimedia.org" port = "4444" wikiUrl = "http://208.80.152.253:5001" username = "wikiuser" userPassword = "wikipass" testBrowser = "Safari on OS X Snow Leopard" runAgainstGrid = true [testSuite] SimpleSeleniumTestSuite = "maintenance/tests/selenium/suites/SimpleSeleniumTestSuite.php"
- You don't need to define any browsers as this is done for you by the grid.
- Available environments can be found at the grid console
- Use the name under "Environment" as
testBrowser
value. - Use host:port as
wikiUrl
.
- Use the name under "Environment" as
- Make sure the option
runAgainstGrid
is set totrue
.
Configure Selenium using command line parameters (This may go away soon)
editYou can override parameters from the configuration file or the hook function using command line paranteres:
Usage: php RunSeleniumTests.php [--conf|--help|--host|--list-browsers|--port|--quiet|--seleniumConfig |--testBrowser|--userPassword|--username|--verbose|--wikiUrl] conf : Location of LocalSettings.php, if not default help : Display this help message host : Host selenium server. Default: $wgServer . $wgScriptPath list-browsers : List the available browsers. port : Port used by selenium server. Default: 4444 quiet : Whether to supress non-error output seleniumConfig : Location of the selenium config file. Default: empty testBrowser : The browser he used during testing. Default: firefox userPassword : The login password for running tests. Default: empty username : The login username for sunning tests. Default: empty verbose : Be noisier. wikiUrl : The Mediawiki installation to point to. Default: http://localhost
For example:
php RunSeleniumTests.php --wikiUrl='http://localhost/deployment' --username='WikiSysop' --userPassword='xxxxxx'
Configure Selenium using a Hook function
editAnother way to configure your selenium test instance is through a Hook - SeleniumSettings.
$wgHooks['SeleniumSettings'][] = 'MyCustomSeleniumTestConfigStatic::getSeleniumSettings';
You will need to add MyCustomSeleniumTestConfigStatic to the AutoLoader or your LocalSettings.php.
The 3 required parameters passed by reference are:
- $seleniumSettings: An array containing the selenium configuration parameters as key value pairs> Possible keys are:
array (
'host' => '<selenium server host>',
'port' => '<selenium server port>',
'wikiUrl' => '<the test wiki url>',
'username' => '<the username if the tests require login>',
'userPassword' => '<the user password if the tests require login>',
'testBrowser' => '<the browser to use for testing>',
)
- $seleniumBrowsers: Browsers available to the selenium server. For example:
array (
'firefox' => '*firefox',
'iexplorer' => '*iexploreproxy',
'chrome' => '*chrome',
)
- $seleniumTestSuites: Path to the test suites that the test runner will run. For example:
array (
'SimpleSeleniumTestSuite' => 'maintenance/tests/selenium/SimpleSeleniumTestSuite.php',
'MyExtensionTestSuite' => 'extensions/myextension/tests/selenium/MyExtensionTestSuite.php',
)