Selenium und PhpUnit
PhpUnit bietet eine Möglichkeit Selenese Tests auszuführen. Zum einen kann man einen Test einzeln ablaufen lassen, zum anderen kann man einen Verzeichnispfad setzen, in dem alle .htm Dateien ausgeführt werden.
Leider ist es derzeit so, dass die Selenese Tests nicht gegen ein Selenium hub ausführbar sind.
Das liegt daran, dass die API von Selenium von 1 zu 2 geändert hat, da die IDE derzeit nur die API Version 1 unterstütz, sind Selenese tests gegen ein hub nativ nicht ausführbar.
Um den Server zu starten reicht hier der klassische aufruf:
java -jar selenium-server.jar
Im folgendem Listing ist ein kleiner Unittest und der dazu passende Selenese Test.
Dieser wird dann wie gewohnt mit phpunit ausgeführt.
php phpunit SeleneseTest.php
PhpUnit-Test
<?php class SeleneseTest extends PHPUnit_Extensions_SeleniumTestCase { public static $browsers = array( array( "name" => "Firefox", "browser" => "firefox", "host" => "localhost", ) ); protected function setUp() { $this->setBrowser("*firefox"); $this->setBrowserUrl("https://www.google.com/"); } public function testMyTestCase() { $this->runSelenese("Pfad/zur/Datei.htm"); } } ?> |
Selenese-Test:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head profile="http://selenium-ide.openqa.org/profiles/test-case"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <link rel="selenium.base" href="https://www.google.de/"/> <title>test</title> </head> <body> <table border="1" cellpadding="1" cellspacing="1"> <thead> <tr> <td rowspan="1" colspan="3">test</td> </tr> </thead> <tbody> <tr> <td>open</td> <td>/</td> </tr> <tr> <td>type</td> <td>id=gbqfq</td> <td>hallo welt2</td> </tr> <tr> <td>click</td> <td>id=gbqfb</td> </tr> <tr> <td>click</td> <td>id=gbqfb</td> </tr> <tr> <td>pause</td> <td>1500</td> </tr> <tr> <td>verifyTitle</td> <td>hallo welt2 - Google-Suche</td> </tr> </tbody> </table> </body> </html> |
Hier der Vollständigkeit halber das snipped für das Verzeichnis in dem die .htm Dateien zu finden sind:
<?php require_once 'PHPUnit/Extensions/SeleniumTestCase.php'; class SeleneseTests extends PHPUnit_Extensions_SeleniumTestCase { public static $seleneseDirectory = '/path/to/files'; } ?> |