Вышла Новогодняя версия 1.23 продукта XML2Selenium
Пожалуйста, ознакомьтесь с изменениями в версии 1.23 и перейдите на новую версию продукта.
Новый функционал версии 1.23
1) Улучшена работа с модальными окнами: реализовано закрытие модального окна по завершению теста, запрещено использование тега <window> при работе с модальными окнами.
2) Добавлена возможность изменять переменные, созданные с помощью тега <variable>. Добавлены атрибуты:
- changeable (true/false) — указывает, может ли переменная быть изменена далее в тесте. По умолчанию false.
- change — в атрибуте указывается ref переменной, значение которой необходимо изменить. Изменение значения переменной возможно только если при её объявлении был указан атрибут changeable=true.
Пример:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Объявляем изменяемую переменную со значением 111 -->
<variable ref="var1" changeable="true" value="111"/>
<!-- Меняем её значение на 555 -->
<variable change="var1" value="555"/>
<assert first="${var1}" second="555" action="equals"/>
</test>
Допускается изменять переменные, которые были объявлены ранее: в этом же тесте, фрейме или уровнем выше:
<variable ref="var1" changeable="true" value="111"/>
<frame>
<variable change="var1" value="777"/>
<assert first="${var1}" second="777" action="equals"/>
</frame>
Не допускается изменять переменную, которая была объявлена во фрейме, вне данного фрейма:
<frame>
<variable ref="var1" changeable="true" value="111"/>
</frame>
<variable change="var1" value="777"/>
3) Добавлена возможность прервать выполнение тега <iterate> по условию. В тег <iterate> добавлен атрибут variableCondition. В этот атрибут необходимо передать имя переменной, на которой цикл прервется. Для этого значение переменной нужно установить в true. Если переменная не была объявлена заранее, она создаётся. Если переменная с таким именем уже существовала, то ей присваивается значение false.
Пример:
<frame ref="breakFrameOnSecondIteration">
<echo message="${Integer.parseInt(count)+1}"/>
<variable change="count"
value="${Integer.parseInt(count)+1}"/>
<variable change="condition"
value="${Integer.parseInt(count)=4}"/>
</frame>
<iterate for="1,2,3,4,5" variableCondition="condition"
var="i" run="breakFrameOnSecondIteration"/>
4) В тег <webelement> добавлено новое действие:
- getHtml — получить html-фрагмент страницы, найденный по указанному локатору и вернуть в переменную, описанную в атрибуте returnValueName.
Пример:
<webelement action="getHTML" xpath="//div[1]"
returnValueName="html" />
5) Сделано внутреннее архитектурное улучшение, появилась возможность задавать порядок выполнения плагинов-обработчиков при наступлении определённого событии. Улучшение поможет разработчикам плагинов делать более гибкую настройку.
6) Улучшена валидация: если указан неверный экшен или неверное значение атрибута, для которого возможны только несколько значений (например атрибут by в теге <combobox> может принимать значения text, value, number), то фреймворк не начнет выполнять тест, а сообщит об ошибке сразу. Так же убраны некоторые лишние атрибуты в xsd для разных тегов: теперь xsd не будет подсказывать неверные атрибуты.
Исправлены проблемы
1) NullPointerException, если groovy-переменная не найдена
2) Не генерируется Behavior report при обращении к несуществующей переменной
3) NullPointerException на linux при указании / в начале пути к файлу в теге <property>
4) При изменении значения выпадающего списка с помощью тега <combobox> не срабатывает onchange событие, на которое подписан данный выпадающий список
5) Некорректно отображаются Business и Behavior reports, когда в именах тестов или тест-кейсов встречается символ ‘%’. Данный символ запрещен к использованию в именах тестов и тест-кейсов.
Вы можете получить больше сведений о продукте, если ознакомитесь с информацией ниже:
Для Вашей пользы мы выложили в открытый доступ ряд отчётов, которые генерирует XML2Selenium:
- Master — для разработки продукта мы создали более 600 тестов и постоянно добавляем новые тесты. Это делается для постоянного увеличения покрытия тестами функционала продукта, тем самым делая его более стабильным. Вы можете изучить эти тесты, так как в них есть большое количество полезных примеров.
- SmokeTest — так как Master тесты всегда должны быть стабильными, а на практике нам необходимо встречаться и с fail, error ситуациями, мы поддерживаем специальный набор тестов (порядка 250 тестов), в котором показаны все возможные ситуации — поваленные тесты, ошибки валидации, и многое другое. Такой билд, такие тесты позволяют нам делать эффективно ручное тестирование нашего продукта перед релизом. А также, это позволяет нам создавать автоматизированные тесты, которые покрывают SmokeTest отчёты нашего продукта. Такие тесты пишутся также на XML2Selenium. Тем самым, мы покрываем свои же репорты своими же инструментами, а значит постоянно используем XML2Selenium на практике. Изучите эти тесты, чтобы понять, какие ошибочные ситуации встречаются.
- SelfTesting — как уже было сказано, мы создаем тесты (около 150), которые покрывают наши SmokeTest отчёты. Данный отчёт показывает результат прогонки таких тестов, и позволяет нам как можно больше функционала отчётов продукта покрыть автоматизированными тестами. Это улучшает автоматизированную регрессию тестов.
- BestPractices — мы создали эти тесты специально для Вас. Вы можете обучиться работе с XML2Selenium, используя BestPractices отчёты и WebView функционал. Все тесты разделены на 3 уровня: Basic, Intermediate, Advanced, в каждом из этих уровней есть тесты следующих типов: Базовые задачи (показывают повседневные рутинные операции), Итеративные тесты (показывают создание тестов в развитии), Фичи продукта (демонстрируют особенности продукта), Популярные сервисы (покрывают тестами twitter, youtube и другие сервисы), а также WordPress тесты (на примере самой популярной CMS системы WordPress показывают, как работать с конкретным продуктом).
Документация продукта XML2Selenium
- Полное руководство (русский язык)
- Reference card
- XSD-схема, которая необходимо для автодополнения при создании тестов
- Интерактивный путеводитель по XML2Selenium
Творчества Вам в Новом Году! Зимний корпоратив 2014