+ All Categories
Home > Technology > Руководство по приготовлению бутербродов из Selenium

Руководство по приготовлению бутербродов из Selenium

Date post: 26-Jun-2015
Category:
Upload: uladzimir-kryvenka
View: 3,279 times
Download: 5 times
Share this document with a friend
Description:
Моя презентация к докладу “Руководство по приготовлению бутербродов из Selenium” с которой я выступил на Selenium Camp в Киеве 25 февраля 2012 года.
Popular Tags:
36
Руководство по приготовлению бутербродов из Selenium Uladzimir Kryvenka Февраль 2012
Transcript
Page 1: Руководство по приготовлению бутербродов из Selenium

Руководство по приготовлению бутербродов из

Selenium

Uladzimir KryvenkaФевраль 2012

Page 2: Руководство по приготовлению бутербродов из Selenium

Обо мне

Инструменты: Selenium, Coded UI Test

Один из основателей:Пишу блог:

В тестировании 5+ лет

Автор портала:

Автоматизацией занимаюсь 2+ года

Это я:

Работаю: Head of QA в Paralect

Опыт:

Page 3: Руководство по приготовлению бутербродов из Selenium

Сегодня в меню

• Аперитив • Готовим бутерброды• Пробуем на вкус• Итоги• Десерт

Page 4: Руководство по приготовлению бутербродов из Selenium

Наш продукт

• Используется более чем в 50 странах мира• Наши клиенты: Microsoft, Volvo, Lenovo, FBI, Harvard и многие другие

www.easyprojects.net

Easy Projects .NET is a web-based project management tool, making team collaboration hassle-free and straightforward.

Page 5: Руководство по приготовлению бутербродов из Selenium

Проблемы

• Слишком долго• Много рутины• Неожиданные ошибки• Сложности при выпуске билдов

Page 6: Руководство по приготовлению бутербродов из Selenium

Решение

Автоматизация!

Page 7: Руководство по приготовлению бутербродов из Selenium

Почему Selenium RC?

• Натренировались на Selenium IDE• Умеет делать все, что нужно• Много документации• …• Ну тут вы все знаете

Page 8: Руководство по приготовлению бутербродов из Selenium

Проблемы в тестах

• Прямолинейно• Непонятно• Мудреные локаторы• Сложно править• Повторное использование кода

Page 9: Руководство по приготовлению бутербродов из Selenium

Решения

• DSL (Domain-specific language)• Page Object pattern• Page Element pattern

Page 10: Руководство по приготовлению бутербродов из Selenium

Ингредиенты

• Microsoft Visual Studio• C#• MS Test• Selenium RC

Page 11: Руководство по приготовлению бутербродов из Selenium

ButerbroD в разрезе

Page 12: Руководство по приготовлению бутербродов из Selenium

Точка входа

Инициализация…

public StateS(string host, int port, string browser, string url) { KillBrowser(); Processor = new HttpCommandProcessor(host, port, browser, url); Selenium = new DefaultSelenium(Processor); Selenium.Start(); Selenium.WindowMaximize(); Selenium.WindowFocus(); }

Page 13: Руководство по приготовлению бутербродов из Selenium

Selenium Document

• Имплементация команд Selenium-а• Создаем обертки для команд• Начинаем формировать свой DSL

Page 14: Руководство по приготовлению бутербродов из Selenium

Элементы страниц

Toggle Button

MenuListAlertFrameComboBoxAttach Table

• Activate()• Check()• Deactivate()• IsChecked()• …

• Activate()• Check()• Deactivate()• IsChecked()• …

Text Field

• TypeText()• IsEditable()• GetValue()• ClearText()• …

• TypeText()• IsEditable()• GetValue()• ClearText()• …

Button

• Click()• ClickAndWait()• DoubleClick()• MouseDown()• …

• Click()• ClickAndWait()• DoubleClick()• MouseDown()• …

Page 15: Руководство по приготовлению бутербродов из Selenium

Страницы

Page 16: Руководство по приготовлению бутербродов из Selenium

Страницы

• Создаем абстракцию страницы• Описываем свойства страницы• Описываем элементы страницы• Описываем проверки страницы

Page 17: Руководство по приготовлению бутербродов из Selenium

Из чего состоит любой тест

Page 18: Руководство по приготовлению бутербродов из Selenium

Атомарные действия• Минимальное логическое действие

Page 19: Руководство по приготовлению бутербродов из Selenium

Шаги в любом ручном тесте

Page 20: Руководство по приготовлению бутербродов из Selenium

Составные действия

Page 21: Руководство по приготовлению бутербродов из Selenium

Организовываем действия

Page 22: Руководство по приготовлению бутербродов из Selenium

Тест-кейсы

Page 23: Руководство по приготовлению бутербродов из Selenium

Пример тест-кейса

public static CreateActivity TestActivity() { return new CreateActivity() { LoginCase = Login.AsAdministrator, CreateStep = new Actions.Composite.Activity.Create() .WithAttach(InputDataConf.AttachSmallFile, "attach for a project") .WithNameAndProject(“TestActivity", “TestProject") .WithStartDateWithShift(0, +1, 0) .WithType("Request") .WithPriority("Urgent") .WithDuration ("55") .WithProgress ("80") .WithEstimatedHours("1.00") .WithMember("Administrator") .WithMember("Den") .WithMember("Project Manager") }; }

Page 24: Руководство по приготовлению бутербродов из Selenium

А можно и так

public static CreateActivity ActivityForProjectMessageboardTest() { return new CreateActivity() { LoginCase = Login.AsAdministrator, CreateStep = new Actions.Composite.Activity.Create() .WithStartDateWithShift(0, 0, -2) .WithEndDateWithShift(0, +1, 0) .WithProject("ProjectForProjectMessageboardTest")

.WithName("ActivityForProjectMessageboardTest") }; }

Page 25: Руководство по приготовлению бутербродов из Selenium

Пару слов о Coded UI Test

Page 26: Руководство по приготовлению бутербродов из Selenium

Selenium + Coded UI

Page 27: Руководство по приготовлению бутербродов из Selenium

Логирование

• Каждый уровень ButerbroD-a логируется

[C] Login as 'TestUser', ‘password': [A] Filling login credentials: [E] Set 'TestUser' to input field 'TextField [id: login]': [D] Typing 'TestUser' in 'TextField [id: login]'. [E] Set '123456' to input field 'TextField [id: pass]': [D] Typing '123456' in 'TextField [id: pass]'. [P] Check is no error message appear:

Page 28: Руководство по приготовлению бутербродов из Selenium

Демо

Page 29: Руководство по приготовлению бутербродов из Selenium

Плюсы

• Легко• Понятно• Гибко• Расширяемо

Page 30: Руководство по приготовлению бутербродов из Selenium

Минусы

• Долгий старт• Не всегда гибко• Нужно думать

Page 31: Руководство по приготовлению бутербродов из Selenium

Результаты

• > 500 авто-тестов• 120 тестовых наборов• > 55% покрытия кода• > 80% покрытия требований• Приёмочное тестирование не требует

вмешательства людей

Page 32: Руководство по приготовлению бутербродов из Selenium

Приправы по вкусу

• Распараллеливание тестов• Сопровождаемость• Максимум пользы• Надежность• Оптимизация• Покрытие кода

Page 33: Руководство по приготовлению бутербродов из Selenium

Планы на будущее

• Selenium WebDriver?• Open source

Page 34: Руководство по приготовлению бутербродов из Selenium

… осталось еще совсем немного

Page 35: Руководство по приготовлению бутербродов из Selenium

Пообщаемся?

http://bugscatcher.net/

[email protected]

u.kryvenka

Page 36: Руководство по приготовлению бутербродов из Selenium

А теперь ваши


Recommended