automated ui testing. selenium. drupalcamp kyiv 2011

Download Automated UI testing. Selenium. DrupalCamp Kyiv 2011

If you can't read please download the document

Upload: yuriy-gerasimov

Post on 16-Apr-2017

4.731 views

Category:

Technology


2 download

TRANSCRIPT

Automated UI testing. Selenium

Plan

What is Selenium?

Selenium IDE, RC, Webdriver

Integration to Drupal

Tests API, locators, examples

Future

What is Selenium?

Selenium IDE

Selenium RC

Selenium Grid

Selenium 2 (Webdriver)

Selenium IDE

Addon to Firefox

Easy to start using

Can record tests in PHP

Demo

Selenium RC

Run in multiple browsers in Virtual Boxes

Runs tests via Javascript

Selenium RC

To install Selenium RC download java server from http://seleniumhq.org/download

Run Selenium IDE tests via PHPUnit Ubuntu: apt-get install phpunit

If php 5.2 make a preference for karmic like for php

Demo

Selenium 2 Webdriver

Communicate with browsers in 'native' way via drivers

Not limited to javascripts. For example: upload files, work with popups, iframes etc.

Support for a lot of browsers including mobile phone browsers

PHPUnit libraries: https://github.com/chibimagic/WebDriver-PHP

Selenium2 Webdriver and Drupal

How to integrate to simpletestIn order to get into sandbox we need to set headers

This is possible with Firefox only (send custom profile to Selenium)

http://drupal.org/project/selenium

Demo

Drupal tests API

Main class DrupalSeleniumWebTestCase

Init driver as connection to Selenium server

Already implemented methods:drupalOpenUrl, drupalLogin, drupalLogout, verboseScreenshot ...

class SeleniumWebElement (sendKeys, click, submit, getText...)

Selenium 2 locators

css, id, name, class, link, xpath

XPath vs CSS locators

Selenium RC has sizzle

Webdriver uses native browsers CSS selectors.

CSS selectors are faster

XPath can go up

Example:

id('user1')/../../td[@class="actions"]/a[@class="delete-user"]

Drag and drop example

Run tests on headless server

Key tool: Xvfb X11 server that performs all graphical operations in memory, not showing any screen output (http://en.wikipedia.org/wiki/Xvfb).

Before we start Selenium server we need to start Xvfb.

Run tests from shell:

sudo -u www-data php ./scripts/run-tests.sh --url http://URL --class SeleniumTestExample

Future

Implement methods from DrupalWebTestCase

Start using Selenium in testing contrib modules and core (module draggableviews already have one selenium test)

References

Selenium RC supported browsers http://www.seleniumwiki.com/software-testing/selenium-supported-browsers

PHPUnit documentation about Selenium http://www.phpunit.de/manual/3.5/en/selenium.html#selenium.selenium-rc

http://ygerasimov.com/integrating-selenium-to-drupal-simpletest-framework

http://ygerasimov.com/run-selenium-tests-drupal-on-debian-headless

http://ygerasimov.com/drupal-selenium-tests-api

Questions

email: [email protected]: ygerasimovskype: yuriy_gerasimov

d.o.: http://drupal.org/user/257311