43
http://j.mp/selen2 * *https:// github.com/bayandin/CodeFest-12

CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Embed Size (px)

Citation preview

Page 1: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

http://j.mp/selen2 *

*https://github.com/bayandin/CodeFest-12

Page 2: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium2:

полевые испытания

Александр Баяндин

Татьяна Курносова

Page 3: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

• Автоматизируешь web-приложение

• Пишешь тесты, но только ручные

• Пишешь тесты используя SeleniumRC

Для кого

Page 4: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Содержание

• Инструменты автоматизации

• Selenium RC vs. Selenium WebDriver

• Примеры тестов

• Автоматизация запуска тестов

• …

Page 5: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

PHP

• Популярный язык программирования

Page 6: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

PHP

• Популярный язык программирования

• Тестируем приложение на PHP

Page 7: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

PHPUnit

• Мэйнстрим

Page 8: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

PHPUnit

• Мэйнстрим

• Умеет работать c селениумом*

Page 9: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium

• Широко распространён

Page 10: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium

• Широко распространён

• Поддерживается

Page 11: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Рабочая среда тестировщика

• PHP, PHPUnit, PHPUnit_Selenium

• Selenium Server

• IDE (e.g. NetBeans)

Page 12: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium RC

Test Script

Selenium RC Server

Web Application

HTTP HTTP HTTP

Page 13: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium RC

Test Script

Selenium RC Server

Web Application

HTTP HTTP HTTP

Page 14: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium WebDriver

Test Script

Web Application

HTTP HTTP Selenium WebDriver

Page 15: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium WebDriver

• Нативное выполнение команд

Page 16: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium WebDriver

• Нативное выполнение команд

• Объектно-ориентированный API

Page 17: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium WebDriver

• Нативное выполнение команд

• Объектно-ориентированный API

• Совместимость с Selenium RC

Page 18: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium WebDriver

• Нативное выполнение команд

• Объектно-ориентированный API

• Совместимость с Selenium RC

• Open Source

Page 19: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Selenium WebDriver

• Нативное выполнение команд

• Объектно-ориентированный API

• Совместимость с Selenium RC

• Open Source

Page 20: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Поддерживаемые языки

• Java

• C#

• Ruby

• Python

Page 21: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Поддерживаемые языки

• Java

• C#

• Ruby

• Python

PHP ?!11

Page 22: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

PHP bindings

• WebDriver-PHP (Chibimagic)

• php-webdriver-bindings (Lukasz Kolczynski, yii extension)

• php-webdriver (Facebook)

Page 23: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

PHP bindings

• WebDriver-PHP (Chibimagic)

• php-webdriver-bindings (Lukasz Kolczynski, yii extension)

• php-webdriver (Facebook)

• phpunit-selenium (Giorgio Sironi)

Page 24: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Hello, World!

Page 25: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Миграция на Selenium2

Page 26: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Миграция на Selenium2

Test

PHPUnit_Extensions_SeleniumTestCase

Page 27: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Миграция на Selenium2

Test

PHPUnit_Extensions_Selenium2TestCase

CustomTestCase

Page 28: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Повторный запуск

Test Run

Page 29: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Повторный запуск

Test Run

Page 30: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Повторный запуск

Test Run

Page 31: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Повторный запуск

Test Run

Page 32: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Повторный запуск

Page 33: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Повторный запуск

TestDecorator

RepeatTest

TestCase

TestSuite

Page 34: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

GRID2

Page 35: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

GRID2

Selenium Node

Selenium Node

Selenium Node

Selenium Hub

Page 36: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

GRID2

• Запускать тесты на разных окружениях

Page 37: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

GRID2

• Запускать тесты на разных окружениях

• Масштабировать наборы тестов

Page 38: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Continuous Integration

Watch Code

Build Project

Public Results

Run Tests

Page 39: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Continuous Integration

Watch Code

Build Project

Public Results

Run Tests

Page 40: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Кроссбраузерность

Page 41: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

«Сегодня я многое понял»

Page 42: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Вопросы?

Александр Баяндин [email protected]

Татьяна Курносова [email protected]

Page 43: CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания

Приложение 1. PHPUnit:

• https://github.com/sebastianbergmann/phpunit/

2. PHPUnit_selenium:

• https://github.com/sebastianbergmann/phpunit-selenium

• https://github.com/giorgiosironi/phpunit-selenium

3. Selenium:

• http://seleniumhq.org/

4. Рабочая среда тестировщика:

• http://phpunit.de/manual/3.6/en/installation.html

• http://seleniumhq.org/download/

• http://netbeans.org/downloads/

5. PHP bindings

• https://github.com/chibimagic/WebDriver-PHP

• http://code.google.com/p/php-webdriver-bindings

• https://github.com/facebook/php-webdriver

• https://github.com/giorgiosironi/phpunit-selenium

6. Selenium WebDriver

• http://code.google.com/p/selenium/wiki/JsonWireProtocol

7. GRID2

• http://code.google.com/p/selenium/wiki/Grid2