Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Использование Яндекс Allure в качестве инструмента сбора отчетности




 

1) Генерация XML файла с результатами выполнения теста

- убедиться, что установлен NUnit версии 2.6.3 (внимание, это важно, так как с версией 2.6.4 allure На текущий момент не работает), если нет – скачать отсюда - http://www.nunit.org/index.php?p=download и установить

- скачать последний релизный allure адаптер для NUnit - https://github.com/allure-framework/allure-nunit/releases

- распаковать скачанный архив в %NUnit_installation_directory%\bin\addins (например - C:\Program Files (x86)\NUnit 2.6.3\bin\addins)

- в файле конфигурации config.xml в параметре <results-path> указать путь до папки, в которую будут складываться результаты выполнения теста (также в файле конфигурации можно указать необходимость создания скриншотов)

- выполнить тесты в NUnit GUI или в консоли nunit-console, используя.NET 4.0 (например, nunit-console YourAssembly.dll /framework=net-4.0)

- после того, как завершится исполнение тестов файл создастся в папке, указанной ранее в параметре <results-path>

 

2) Получение отчета из сгенерированного xml файла

- скачать последнюю версию allure-cli отсюда - https://github.com/allure-framework/allure-cli/releases/tag/allure-cli-2.3

- установите jdk - http://www.oracle.com/technetwork/java/javase/downloads/index.html

- создайте новую системную переменную JAVA_HOME, указывающую на папку с установленным jdk, например - C:\Progra~1\Java\jdk1.8.0_31 (подробно процесс создания новой переменной описан здесь - https://confluence.atlassian.com/display/DOC/Setting+the+JAVA_HOME+Variable+in+Windows)

- распаковать архив в папку с названием allure-cli

- перейти в папку bin, создать в ней исполняемый файл run.cmd, состоящий из следующих команд:
allure.bat generate -v 1.4.1 D:\test-results-allure\

pause

вместо D:\test-results-allure\ необходимо указать свой путь до папки с xml файлами, сгенерированными на первом шаге

- запустите run.cmd

- после его выполнения в папке bin создастся папка allure-report, содержащая файл index.html, который и является страницей отчета

 

 

Шаблон проектирования “Page Object”


Основная идея паттерна Page Objects инкапсулировать логику поведения страницы в классе страницы. Таким образом, тесты будут работать не с низкоуровневым кодом технического драйвера, а с высокоуровневой абстракцией.

Основные преимущества Page Objects:

1. Разделение полномочий: вся «бизнес-логика» страницы должна помещаться в Page Objects, классы тестов лишь вызывают публичные методы и проверяют результат

2. DRY – все локаторы помещаются в одном месте. Когда UI изменится, то мы изменим локатор лишь в одном месте

3. Скрытие слоя технического драйвера. Тесты будут работать с высокоуровневой абстракцией. В будущем, возможно, вы захотите сменить драйвер: например, использовать PhantomJS, или вообще для каких-то участков отказаться от использования WebDriver, для улучшения производительности. В этом случае, придется заменить только код Page Objects. Тесты останутся неизменными

4. Page Objects позволяет записать локаторы в декларативном стиле

 

За основу реализации в проекте взята данная статья - http://habrahabr.ru/post/155109/ Пример реализации проекта по данной статье доступен по ссылке - https://github.com/DmitryRoss/Page-Object-Model-Article

 

Обязательные составляющие проекта:

- класс BaseObject, в котором инициализируются страницы:

 

public class BaseObject

{

public static RemoteWebDriver Driver;

public static DefaultSelenium Selenium;

 

public static void InitPage<T>(T pageClass) where T: BaseObject

{

PageFactory.InitElements(Driver, pageClass);

}

}

 

- класс BaseTest, который наследуется от BaseObject. В нем объявляются блоки TestFixtureSetUp, TestFixtureTearDown, SetUp, TearDown. В TestFixtureSetUp объявляется соответствующий драйвер и его настройки, в TestFixtureTearDown осуществляется закрытие драйвера, в SetUp – переход на главную страницу системы, в TearDown – проверка страницы на наличие ошибок, а также проверка на наличие ошибок в консоли.

- в классе Utils (также наследуется от BaseObject) – содержатся функции и переменные, общие для всех страниц системы, например - адреса определенных страниц, а также служебные функции (функция ожидания)

 

Для тестирования страницы создаются следующие классы (на примере тестирования входа в систему):

 

1) Класс с описанием самих элементов страницы – LoginPage (наследуется от BaseObject)

Структура данного класса следующая:

- локаторы страницы: public const string USER_NAME_TEXT_FIELD = "//input[@id='login']";

- объявление соответствующего веб=элемента для локатора:

[FindsBy(How = How.XPath, Using = USER_NAME_TEXT_FIELD)]

public IWebElement userNameTextField;

- функция инициализации данной страницы:

public static LoginPage GetLoginPage()

{

LoginPage loginPage = new LoginPage();

InitPage(loginPage);

return loginPage;

}

- функции работы с элементами страницы:

public LoginPage TypeUserName(string userName)

{

userNameTextField.SendKeys(userName);

return GetLoginPage();

}

 

2) Класс помощник helper (Каждый такой класс обслуживает один конкретный класс с тестами) - LoginHelper

Структура класса:

- инициализация страницы(страниц):

private LoginPage loginPage = new LoginPage();

 

- функции, обращающиеся к элементам страницы:

public LoginHelper DoLogin(string userName, string password)

{

BaseObject.InitPage(loginPage);

loginPage.LogOff().

TypeUserName(userName).

TypePassword(password).

ClickLoginButton();

return this;

}

 

3) Класс теста – LoginTest

Структура:

- инициализация helper’а:

private static LoginHelper loginHelper = new LoginHelper();

 

- сам тест (он состоит из обращений к функциям helper’а):

[Test]

public static void AssertLogin()

{

string userName = "admin";

string password = "";

string displayedUserName = "Администратор";

string Welcome_text = "Добро пожаловать в систему ELMA!";

 

loginHelper.

DoLogin(userName, password).

AssertUserName(displayedUserName).

AssertHomePage(Welcome_text);

}

 

4) Класс со вспомогательными функциями (используемыми только для данной страницы, общие вспомогательные функции объявляются в Utils) - LoginUtils





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 1043 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Что разум человека может постигнуть и во что он может поверить, того он способен достичь © Наполеон Хилл
==> читать все изречения...

4521 - | 4417 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.