Selenium is a portable software testing framework
for web applications. Selenium provides a record/playback tool for authoring
tests without learning a test scripting language. Selenium provides a test
domain specific language (DSL) to write tests in a number of popular
programming languages including C#, Java, Groovy, Perl, PHP, Python and Ruby.
Test playback is possible in most modern web browsers. Selenium deploys on
Windows, Linux, and Macintosh platforms.
Selenium
IDE is an integrated
development environment for Selenium scripts. It is implemented as a Firefox
extension, and allows you to record, edit, and debug tests. Selenium IDE
includes the entire Selenium Core, allowing you to easily and quickly record
and play back tests in the actual environment that they will run.
Selenium
IDE is not only a recording tool: it is a complete IDE. You can choose
to use its recording capability, or you may edit your scripts by hand. With
auto complete support and the ability to move commands around quickly,
Selenium IDE is the ideal environment for creating Selenium tests no matter
what style of tests you prefer.
Selenium
Remote Control (RC) is a test tool
that allows you to write automated web application UI tests in any
programming language against any HTTP website using any mainstream
JavaScript-enabled browser.
Selenium RC comes in two parts.
1.
A server which
automatically launches and kills browsers, and acts as a HTTP proxy for web
requests from them.
2.
Client libraries for
your favourite computer language.
The RC server also bundles Selenium Core and automatically loads it into the browser. Below is a simplified architectural representation... |
PHPUnit is
a regression testing framework used by the developer who implements unit tests
in PHP.
·
Downloading and Installing
1.) Selenium IDE
For use with Firefox, download the IDE from the Selenium downloads page (http://seleniumhq.org/download/). Then install the Selenium-IDE add-on on your Firefox browser. After the installation completes you can run the IDE to create test cases. To run the Selenium-IDE, simply select it from the Firefox Tools menu. It opens with an empty script-editing window and a menu for loading, or creating new test cases.
2.) Selenium RC
1.) Selenium IDE
For use with Firefox, download the IDE from the Selenium downloads page (http://seleniumhq.org/download/). Then install the Selenium-IDE add-on on your Firefox browser. After the installation completes you can run the IDE to create test cases. To run the Selenium-IDE, simply select it from the Firefox Tools menu. It opens with an empty script-editing window and a menu for loading, or creating new test cases.
2.) Selenium RC
- Make sure that you have Java Runtime installed on your machine.
- Download Selenium RC from downloads page (http://selenium-rc.seleniumhq.org/download.html)
- After extracting the files from the archive, copy the 'selenium-server.jar' file to any location of your choice.
- Start the Selenium RC server from the command-line by issuing the following command: java -jar selenium-server.jar
This will start the server on port 4444.
- Now the server is ready to accept test commands from your PHP script. Make sure you keep this server running till you finish testing.
- Now the server is ready to accept test commands from your PHP script. Make sure you keep this server running till you finish testing.
3.) PHPUnit
-An easy way to install PHPUnit is to use the PEAR installer. First of all install the latest version of PEAR by supplying following command :
pear install PEAR-1.9.2
-The PEAR channel (pear.phpunit.de) is used to distribute PHPUnit so make sure that it is registered with your local PEAR environment:
pear channel-discover pear.phpunit.de
-After the channel is registered install PHPUnit:
pear install phpunit/PHPUnit
-Finally upgrade the PHPUnit to its latest version.
pear upgrade phpunit/PHPUnit
·
Running a simple test using Selenium IDE
-Start Selenium IDE in Firefox: Tools->Selenium IDE
-Click on the red record button on the right.
- Browse to http://www.deerwalk.com
- Browse the page and all the links and buttons you clicked will be recorded.
- Stop the recording by clicking on the record button.
-Start Selenium IDE in Firefox: Tools->Selenium IDE
-Click on the red record button on the right.
- Browse to http://www.deerwalk.com
- Browse the page and all the links and buttons you clicked will be recorded.
- Stop the recording by clicking on the record button.
If you
click on the ‘Source’ tab of the IDE you can see the test.html generated by
selenium.
The ‘table’ tab shows the commands recorded by Selenium.
- Open a new tab in Firefox and click on the Selenium IDE’s play button to run the recorded test.
The ‘table’ tab shows the commands recorded by Selenium.
- Open a new tab in Firefox and click on the Selenium IDE’s play button to run the recorded test.
- The IDE should play your recorded test. The IDE after the test run is shown below. In the ‘Log section’ you can see the various events run by the test. In the table tab you can see that all the rows are green, which means that the test ran successfully.
The interesting
part follows – running the same test from PHP. From the file menu, select
‘Export Test Case As…’ and as we are using PHP, select ‘PHP – PHPUnit’. Save
the file by the name ‘Example.php’.
This is
what we get in Example.php
<?php
class Example extends
PHPUnit_Extensions_SeleniumTestCase
{
protected function setUp()
{
$this->setBrowser("*chrome");
$this->setBrowserUrl("http://www.testurl.com/");
}
public function testMyTestCase()
{
$this->open("/");
$this->click("link=Services
»");
$this->waitForPageToLoad("30000");
$this->click("link=Careers
»");
$this->waitForPageToLoad("30000");
$this->click("link=Blog");
$this->waitForPageToLoad("30000");
$this->click("link=Case
Studies");
$this->waitForPageToLoad("30000");
}
}
?>
·
Actual testing
Now that PHPUnit is installed and the Selenium RC server is up and running, it’s time to run our test we saved before in our ‘Example.php’ file. Type the following on the command-line:
phpunit
ExampleNow that PHPUnit is installed and the Selenium RC server is up and running, it’s time to run our test we saved before in our ‘Example.php’ file. Type the following on the command-line:
This will start the test. The PHPUnit Selenium driver will execute each test command from your file and send it to the Selenium server, which does the job of launching the appropriate browser, opening web pages, and performing various specified actions; and closing the browser after the test completes.
Now to test the same test
case in another browser you simply need to set Browser to the one you want the
test to run.
Supported browsers include:
*firefox
*mock
*firefoxproxy
*pifirefox
*chrome
*iexploreproxy
*iexplore
*firefox3
*safariproxy
*googlechrome
*konqueror
*firefox2
*safari
*piiexplore
*firefoxchrome
*opera
*iehta
*custom
·
“Selenese” Selenium Commands
A command
is what tells Selenium what to do. Selenium commands come in three 'flavors': Actions,
Accessors
and Assertions.
Actions are commands that generally manipulate the state of the application. They do things like "click this link" and "select that option". If an Action fails, or has an error, the execution of the current test is stopped.
Many Actions can be called with the "AndWait" suffix, e.g. "clickAndWait". This suffix tells Selenium that the action will cause the browser to make a call to the server, and that Selenium should wait for a new page to load.
Accessors examine the state of the application and store the results in variables, e.g. "storeTitle". They are also used to automatically generate Assertions.
Assertions are like Accessors, but they verify that the state of the application conforms to what is expected. Examples include "make sure the page title is X" and "verify that this checkbox is checked".
All Selenium Assertions can be used in 3 modes: "assert", "verify", and "waitFor". For example, you can "assertText", "verifyText" and "waitForText". When an "assert" fails, the test is aborted. When a "verify" fails, the test will continue execution, logging the failure. This allows a single "assert" to ensure that the application is on the correct page, followed by a bunch of "verify" assertions to test form field values, labels, etc. "waitFor" commands wait for some condition to become true (which can be useful for testing Ajax applications). They will succeed immediately if the condition is already true. However, they will fail and halt the test if the condition does not become true within the current timeout setting.
·
Commonly
Used Selenese
-open
opens a page using a URL.
-click/clickAndWait
performs a click operation, and optionally waits for a new page to load.
-verifyTitle/assertTitle
verifies an expected page title.
-verifyTextPresent
verifies expected text is somewhere on the page.
-verifyElementPresent
verifies an expected UI element, as defined by its HTML tag, is present
on the page.
-verifyText
verifies expected text and it’s corresponding HTML tag are present on
the page.
-verifyTable
verifies a table’s expected contents.
-waitForPageToLoad
pauses execution until an expected new page loads. Called automatically
when clickAndWait is used.
-waitForElementPresent
pauses execution until an expected UI element, as defined by its HTML
tag, is present on the page.





0 comments:
Post a Comment