понедельник, 30 марта 2015 г.

Рецепты приготовления JUnit и TestNG

В мире существует множество фреймворков, помогающих в разработке автоматических тестов на Java. Некоторые помогают во взаимодействии с браузерами, некоторые - с базами данных. Но при этом особняком стоят два "атланта" - TestNG и JUnit. Эти фреймворки предназначены для облегчения жизни рядовым разработчикам при написании автотестов. Изпользуя их, уже не нужно задумываться, а как запустить Ваши тесты? Как добавить настройки? Как объединить тесты в наборы? За Вас уже все продумали создатели этих чудесных библиотек, инструментов или фреймворков - каждый называет эти продукты как хочется.

Разумеется, и TestNG и JUnit обладают массой полезных и удобных фич, каждый по своему хорош. Уж сколько раз устраивались "холивары" по поводу того, кто же всё таки "круче"? Выбирать Вам, что для Вас удобно, что более оптимально.

В двух интересных статьях - о TestNG  и о JUnit - просто и доходчиво описаны основные и ключевые фичи того и другого продукта. Кажется, что они неплохо подойдут в качестве своеобразной методички для каждой из библиотек.

пятница, 20 марта 2015 г.

Allure - красивые и понятные отчеты к автотестам

Какими основными особенностями должны обладать хорошие автотесты? Основное - это конечно же простой, понятый, удобный для поддержки код. Без него никак. Если одно из перечисленных свойств отсутствует - уже сложно считать тесты "хорошими".

Но есть еще один пункт, о котором ни в коем случае нельзя забывать - это отчет. Если в результатах выполнения тестов может разобраться только человек, создавший их, то они никак не соответствуют определению "хорошие", не так ли?

Отчет должен быть понятным, и, что на мой взгляд важно, красивым. Так же система, с помощью которой мы работаем с этим отчетом из кода(добавление различных шагов, логов, скриншотов) должна быть по возможности как можно более простой и прозрачной.

Всеми перечисленными в предыдущем абзаце свойствами обладает allure. Основными его плюсами являются:

  1. Понятный для любого члена команды вид отчета - сразу видно разделение по функциональности, различные тестовые сьюты.
  2. Красивый и достаточно лакончиный UI, написанный с использованием последних технологий в веб разработке.
  3. Наличие поддержки различных языков программирования - Java, С#, python и библиотек - JUnit, TestNG, NUnit, PyTest.
  4. Удобное и достаточно гибкое API  - не составит сложности подключить отчеты к уже существующим тестам.
  5. Написанные плагины для различных CI инструментов.
  6. Продукт является opensource с очень дружественными разработчиками, готовыми к обсуждению и добавлению желаемой функциональности.
И это лишь малая часто того, что предоставляет нам allure.  
Внутри самого отчета так же очень хочется выделить возможность различного рода attach'ей, через которые можно расширять возможности отчета до беспредельных величин.

Более подробная инструкция о том, как же пользоваться инструментом - в нашей статье.



пятница, 13 марта 2015 г.

IntelliJ IDEA Selenium Pligin

При написании тестов на веб мы , зачастую, сталкиваемся с целом рядом проблем. В начале - это размышления о том, какую архитектуру фреймворка выбрать, как взаимодействовать с webdriver. В процессе написания кода возникают проблемы : а правильно ли написан локатор?Есть ли такой элемент на странице? 

С этими проблемами нам призван помочь разработанный недавно плагин для IntelliJ IDEA. Описание можно увидеть на сайте разработчиков. Из заявленных функций:


  1. Создание преднастроенного проекта для написания тестов. То есть в несколько кликов есть возможность создать уже рабочий проект, готовый для работы.
  2. Code complete для локаторов. Многие уже давно не могут жить без этого для обычного кода, а теперь такая возможность появилась так же и при составлении локаторов.
  3. Проверка правильности написания локаторов в коде. Ведь наверняка бывало, что из за случайно забытой одинарной кавычки в локаторе мы тратили драгоценное время, чтобы понять, где же все таки проблема?
  4. Проверка сущствования элементов на странице. Написали локатор, но не понятно, правильно ли мы это сделали? И сколько элементов может быть найдено по данному идентификатору?
  5. Возможность простой генерации полей для Page Object(те, что помечены аннотациями @FindBy). 

Набор полезных фишек неплохой, не так ли? Разработчики(в числе которых Ваш покорный слуга) плагина готовы слушать предложения и добавлять любые желанные "фишки". Сейчас продукт находится в активной фазе развития и мы верим, что в итоге должен получиться инструмент, который реально упростит жизнь разработчикам автоматических тестов на веб с использованием selenium.
Любые предложения, пожелания, комментарии ну и , разумеется, баг репорты, можно отправлять по форме обратной связи прямо на сайте.