четверг, 11 июля 2013 г.

Genie Automated UI Tester - смотрим глубже

Продолжаю серию статей о Genie UI tester от самого Adobe.

Сначала о том, что радует.
Порадовало то, что этот фреймворк можно развивать. Очень много интерфейсов для реализации любых идей.
Нет запутанных и сложно-понимаемых методов.
Прекрасная документация, очень подробная. Чуть ли не на пальцах объясняются основные принципы. Примеры просто вызывают дикий восторг.
При этом это ведь тестовый фреймворк. Есть собственная "запускалка".
Логирование везде и всюду. Даже если отменить его при запуске тестов, то оно всё равно есть. Тут разработчики, на мой взгляд, немного переборщили.
Есть возможность подписывания слушателя на определенное  событие. Как стандартное(напр. click) так и кастомное. Что очень удобно.
В общем, на первый взгляд всё очень даже ничего.
И самое хорошее(во всяком случае для меня) - всё написано на Java.

Теперь о том что вызвало разочарование и в некоторых моментах раздражение.
 
Первое и самое обидное. Плагин для просмотра и анализа флэши есть только под Eclipse. Я приверженец Idea Studio. Этим всё сказано. Плагин иногда отваливается, зависает. Нет динамического обновления доступных флэш приложений. Т.е. если ты открыл приложение после того, как загрузил Eclipse, то придется перегружать IDE, только для того, чтоб приложение добавилось в список доступных для анализа.

Лично у меня создалось впечатление, что Genie разрабатывали студенты, которым поставили цель, что мол сделаете - возьмем на  работу. Нет элементарных вещей. Например, паузы между выполнением каждой командой "вбиты гвоздями" и равны 1000 мс. В моей работе время не самый критичный фактор, но всё-таки хочется побыстрее. Пришлось немного допилить Executor.jar.

Иногда компоненты некорректно находятся по имени. Поэтому приходится просматривать весь массив найденных элементов и выбирать нужный, а это время.

Нельзя взять рутовый элемент, но можно написать метод для этой операции.

Нет возможность проверки наличия того или иного свойства компонента.

Не очищается очередь при операции addEventListener. Это нужно делать самому, при этом дописывать приходиться и в Executor.jar и в GenieLibrary.swf (т.е. нужны элементарные знания AS3).

Но в целом продукт получился достойный.
Жаль, что  он не обновлялся уже год. Но я думаю всё еще впереди.

вторник, 2 июля 2013 г.

Genie Automated UI Tester

Automated UI Tester for Adobe® ActionScript® (Genie)
или тестируем Flash

Работа у меня немного специфичная - Flash приложения тестирую.
Так вот возникла проблемка.
Для тестирования используем связку Selenium + FIT + Java через ExternalInterface. Не буду вдаваться в подробности, скажу лишь одно данный подход позволяет ч/з JavaScript "дёргать" методы флэши, которые открыл для нас девелопер. При этом даже банальный, скажем, клик должен быть выведен наружу через упомянутый выше интерфейс.
Возникла идея, а как сделать так, что бы из кода, кликать по элементу флэши, не дергая методы, а по-честному, как пользователь и не перемещать при этом мышь, а просто сформировал событие, отправил, получил результат. Как в  Selenium
Перепробовал довольно много вариантов.
Сразу отбросил платные средства. 
Из бесплатного на что обратил внимание:
  1. sfapi - откинул сразу, по причине того, что для идентификации элемента используется  только id и нужно пересобирать проект флэши с использованием их библиотеки.
  2. seleniumfx - мутный, непонятный и странный проект. Заброшен и умер. Хотя идея добавления функционала в Selenium тестирования флэш, довольна соблазнительна.
  3. sahi- новое средство тестирование. Здесь меня ждало разочарование, с флэшой он   работает через ExternalInterface.
  4. PuchToTest - интересно, но не работает под Linux, поддержка тестирования флэш какая-то мутная.
Вот в принципе и весь инструментарий.
И вот в очередной раз выискивая какой-либо профпригодный инструмент для тестирования flash, наткнулся на это -  Automated UI Tester for Adobe® ActionScript® (Genie) или тестируем Flash. Какова же была моя радость, когда через получаса настроек (долго - потому что Ubuntu),  я смог записать и воспроизвести скрипт. Это было полное счастье для человека, который открыл для себя что-то реально новое и не похожее на другое.

Продолжение следует...