Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
-
Upload
dmytro-zharii -
Category
Documents
-
view
2.792 -
download
5
description
Transcript of Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
![Page 1: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/1.jpg)
И никуда не надо ехать!
Читабельные отчеты для автоматизации на C# и
Selenium WebdriverДмитрий Жарий 2012
![Page 2: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/2.jpg)
О себе
![Page 3: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/3.jpg)
О чем доклад?
![Page 4: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/4.jpg)
Selenium IDE – это хорошо!
1. Просто начать: можно вот так вот взять – и сделать!
2. Можно быстренько записать тест и чуть допилить
3. Не нужно знать «сложного» языка программирования
4. Много учебных материаловЕсть трейнинги, видео, книги, на форуме можно спросить если чё.
5. Отличный инструмент, когда UI и архитектура продукта не меняется, а новые фичи не ломают старые тесты. (Вполне реально для старых проектов, c ~ 10-ти летней историей)
![Page 5: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/5.jpg)
Но, в динамически развивающихся проектах…
1. Хочу тестировать в разных браузерах,а есть только Firefox :(
2. Mozilla штампует Firefox’ы так быстро, что разработчики Selenium IDE просто не успевают обеспечить совместимость
3. Хочу использовать все возможности современных языков программирования
4. Хочу читать данные их Excel или из Базы Данных5. А может быть и разработчики
будут помогать писать тесты? Если тесты будутна их «родном» языке.
![Page 6: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/6.jpg)
А давайте экспортируем тесты в C#/ WebDriver!
![Page 7: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/7.jpg)
Прощай, уютный Selenium IDE :(
Список тестов
Статистика
Журнал/Справочник
Удобные ошибки
![Page 8: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/8.jpg)
Привет, Gallio Icarus, MbUnit, BDDfy!
• Gallio Icarus – богатая графическая оболочка, позволяющая запускать тесты и получать красивые отчеты
• MbUnit – тест-фреймворк, позволяющий создавать модульные и интеграционные тесты. «Родной» для Gallio Icarus. Позволяет задействовать все функции отчетности.
• BDDfy – фреймворк, позволяющий писать тесты в BDD-стиле. Т.е., пользовательские истории, Given/When/Then, сценарии и т.д.
![Page 9: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/9.jpg)
А что получилось? Вот это?!driver.Navigate().GoToUrl(baseURL + "/register/");driver.FindElement(By.LinkText("Зарегистрируйсяпрямо сейчас!")).Click();driver.FindElement(By.Name("your-email")).Clear();driver.FindElement(By.Name("your-email")).SendKeys(" ");driver.FindElement(By.Name("text-765")).Clear();driver.FindElement(By.Name("text-765")).SendKeys(" ");driver.FindElement(By.Name("your-name")).Clear();driver.FindElement(By.Name("your-name")).SendKeys(" ");driver.FindElement(By.CssSelector("input.wpcf7-submit.submitf")).Click();// ERROR: Caught exception [ERROR: Unsupported command [selectWindow]]driver.FindElement(By.Id("fbInspectButton")).Click();// ERROR: Caught exception [ERROR: Unsupported command [selectWindow]]driver.FindElement(By.XPath("//div[@id='wpcf7-f1-p16-o1']/form/div[3]")).Click();// ERROR: Caught exception [ERROR: Unsupported command [isTextPresent]]
![Page 10: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/10.jpg)
А что будет если просто скопировать…
![Page 11: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/11.jpg)
… Скопировать… и…
![Page 12: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/12.jpg)
Запустить в Gallio Icarus!
![Page 13: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/13.jpg)
1. Удобный лог в формате HTML сразу после тестового прогона
Результат
Эта ссылка откроет Visual Studio
![Page 14: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/14.jpg)
1. Удобный лог в формате HTML сразу после тестового прогона
Можно просмотреть результат как одного, так и группы тестов
Можно вставить любой HTML код. Например, Flash-игру, Чтобы не было скучно
![Page 15: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/15.jpg)
2. Тестовые наборы
• Фильтр по категориям• Может Показать только Failed тесты• Отображает тестовый набор как в
древовидном, так и в линейном стиле
![Page 16: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/16.jpg)
3. Проект и отчеты
![Page 17: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/17.jpg)
Еще плюшки: можно записать видео
![Page 18: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/18.jpg)
И открыть его из отчета
![Page 19: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/19.jpg)
Gallio Icarus
• Бесплатный, с открытым исходным кодом• Простая установка в пару кликов• Интеграция с Visual Studio• Возможность запускать тесты без
установленной Visual Studio• Богатое форматирование отчета• Возможность вставки HTML
![Page 20: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/20.jpg)
Gallio Icarus
• Запись видео и снятие скриншотов «из коробки»
• Тестовый фреймворк MbUnit – родной для Icarus
• Поддерживает запуск тестов написанных на NUnit, MSTest
• Интегрируется с множеством других проектов (NCover, RSpec + IronRuby, TeamCity )
• Не менее уютен, чем Selenium IDE :)
![Page 21: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/21.jpg)
Связь между кодом и процессом разработки
![Page 22: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/22.jpg)
Карточки, Аджайлы, пользовательские истории и BDD
История: Валидация значений на Форме РегистрацииКак Админ КонфеткиЯ хочу чтобы на странице регистрации была базовая валидацияКоторая бы не пропускала некорректные значения
Сценарий: Форма не должна принимать поля, состоящие из пробеловДано Я на Странице РегистрацииКогда Я заполняю все поля пробеламиИ нажимаю на кнопку отправкиТогда форма должна предупредить о некорректном вводе
![Page 23: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/23.jpg)
Карточки, Аджайлы, пользовательские истории и BDD
Story: Input validation on the Registration FromAs a Confet&QA AdministratorI want the Registration Page to have basic validationSo that it won’t accept the incorrect input
Scenario: The user form should not accept fields filled with only spacesGiven I am on the Registration FormWhen I fill all the fields with space (“ ”)And click the Submit ButtonThen the page should warn me on invalid input
![Page 24: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/24.jpg)
А связь то между тем и этим где?driver.Navigate().GoToUrl(baseURL + "/register/");driver.FindElement(By.LinkText("Зарегистрируйсяпрямо сейчас!")).Click();driver.FindElement(By.Name("your-email")).Clear();driver.FindElement(By.Name("your-email")).SendKeys(" ");driver.FindElement(By.Name("text-765")).Clear();driver.FindElement(By.Name("text-765")).SendKeys(" ");driver.FindElement(By.Name("your-name")).Clear();driver.FindElement(By.Name("your-name")).SendKeys(" ");driver.FindElement(By.CssSelector("input.wpcf7-submit.submitf")).Click();// ERROR: Caught exception [ERROR: Unsupported command [selectWindow]]driver.FindElement(By.Id("fbInspectButton")).Click();// ERROR: Caught exception [ERROR: Unsupported command [selectWindow]]driver.FindElement(By.XPath("//div[@id='wpcf7-f1-p16-o1']/form/div[3]")).Click();// ERROR: Caught exception [ERROR: Unsupported command [isTextPresent]]
![Page 25: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/25.jpg)
А связи нет. Но, будет!
BDDfy БыДиДирует тесты!
* То есть, делает их понятней
![Page 26: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/26.jpg)
До…
![Page 27: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/27.jpg)
После (Часть 1)
![Page 28: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/28.jpg)
После (Часть 2)
![Page 29: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/29.jpg)
Зачем?
![Page 30: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/30.jpg)
У BDDfy есть отдельный лог (bddfy.html)
![Page 31: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/31.jpg)
BDDfy: отчет из стандартного примера
![Page 32: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/32.jpg)
Но, все это – красивая обвертка
![Page 33: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/33.jpg)
Форма + Содержание
Форма:– Удобные и красивые отчеты (Gallio Icarus +
MbUnit)– Разбить тесты на отдельные шаги (BDDfy)
Содержание:– Использовать высокоуровневый язык – Разбить код на переиспользуемые блоки– Методы, функции, паттерн PageObject
![Page 34: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/34.jpg)
Давайте вынесем переиспользуемый код
![Page 35: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/35.jpg)
Код стал веселее :)
![Page 36: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/36.jpg)
Венгерская нотация
txtEmail – text – текстовое полеlblMessage – label – строка текстаbtnSubmit – button – кнопка ddlCountry – drop down list – выпадающий
списокchkAutoConfeTQA – checkbox – чек-бокс
*Как никогда актуальна, когда все элементы – это IWebElement
![Page 37: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/37.jpg)
Хочешь текстовое поле? – Пиши “txt…”
![Page 38: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/38.jpg)
Выводы
1. Кладём код в Gallio Icarus2. В формочку из BDDfy3. Добавим лучших практик по написанию
кода (по вкусу)
И вуаля! Красивые и аппетитные отчеты готовы!
![Page 39: Читабельные отчеты для автоматизации на C# / Gallio / BDDfy](https://reader034.fdocuments.net/reader034/viewer/2022051013/548aa9f3b479591c1a8b45cd/html5/thumbnails/39.jpg)
Спасибо за внимание!Я готов ответить на Ваши вопросы.
Спасибо за поддержку:
Дмитрий Жарий
http://[email protected]