четверг, 23 мая 2013 г.

Тадааам! Позвольте представить - Genie!

Automated UI Tester for Adobe® ActionScript® is code named as Genie.

Джин - вот то, что поможет нам в автоматизации тестирования флешевых приложений! Джин создан для флеша, не требует доступа к исходному коду или запуска внутри приложения и может запускаться в фоне (в отличии от Sikuli). Его отличительной способностью является умение однозначно определять любой элемент внутри флеша (epic win!). Можно записывать произведенные действия скриптами и запускать их! Правда, после доработки напильником, но по сравнению с тем же Sikuli (сразу оговорюсь, что ничего не имею против самой проги - она отлична и достойна похвал, но для флеша её ценность стремится к нулю) это просто песня.
Что нужно для его запуска? Сам Джин конечно же, Эклипс, дебажный флеш-плеер и немного усилий в продирании по англоязычному гайду.
Итак, начнем.
Тут http://sourceforge.net/adobe/genie/wiki2/FAQ/ как можно догадаться, FAQ. Квитэссенцию прелестей я изложила выше.
Там же можно нажать Files, чтобы перейти к документации и файлам http://sourceforge.net/projects/genie.adobe/files/
В документации есть pdfка UserGuide, в которой очень подробно и хорошо, но на английском. расписывается что к чему и почему. Я постараюсь на русском изложить все, что оттуда удалось выдрать. Сразу оговорюсь, что у меня Винда, а работает эта штука только в опере, хотя написано, что поддерживает все браузеры с флешем (и как раз опера там не указана). Т.е моя конфигурация - Windows 7, Opera.
Итак,
1. Скачать из директории с файлами архив Genie-binary.zip и распаковать его куда угодно.
2. Установить дебажный флеш-плеер, инструкция любезно прилагает ссылку для скачивания  http://www.adobe.com/support/flashplayer/downloads.html (разумеется, выберите подходящий для вашей оси и разрядности)
2. Установить Яву (JDK - Java Development Kit), тоже любезно прилагается ссылка 
3. Ну и поскольку Джин у нас является эклипсовым плагином, то конечно нужен Эклипс, скачать тут
Это все был подготовительный этап, начинается впилка.
4. Наш разархивированный Джин лежит себе на диске с путем [GeniunePath], и этот путь нам еще пригодится.
5. Копируем из нашего  [GeniunePath]\GeniePlugin файлик GeniePlugin.jar и закидываем его в папку с плагинами Эклипса, например D:\Eclipse\Plugins
6. Копируем также из [GeniunePath]\GenieLibrary файл mm.cfg в пользовательскую папку, т.е. C:\Documents and Settings\testuser\
7. Теперь открываем его в блокноте и правим путь к SWFке, должно получится так:
PreloadSWF = [GeniunePath]\GenieLibrary\GenieLibrary.swf (помним, что это шаблон пути, где обитает наш Джин)
8. Дальше шаманство - переходим по ссылке  и, выбрав "Добавить местоположение"

указываем путь к SWFке (это тот самый путь, что мы прописывали в mm.cfg) [GeniunePath]\GenieLibrary\GenieLibrary.swf - зачем это делается, написано в самом окошке. После добавления пути нужно отметить "Всегда разрешать" и просто закрыть это окно.
9. Запускаем сервер Джина (повторюсь, что я поднимала все под Виндой, поэтому понятия не имею что с остальными осями, у прогаммиста под никсом все встало, но Джин не коннектится к SWFке и толку от него получается ноль) из [GeniunePath]\GenieServer - там лежит батник LaunchServer.bat
10. Запускаем Эклипс. Чтобы вытащить наш плагин на свет божий (если он автоматом не подкинулся), выбираем Windows > Show View > Other > Genie > Genie. Рекомендую подглядывать в гайду, там годные скриншоты.
11. Запускаем браузер и в нем любую SWFку, у меня это флешевая игра (ради чего всё и затевалось). На ней теперь в левом верхнем углу должен появится значок Джина:
 . Он будет серым, если батник с сервером не запущен. 
И этот зеленый значок значит, что мы все подняли правильно! Первый этап пройден :) Не переключайтесь, в следующем посте я расскажу сама себе, вызывайте санитаров! как слабать простенький скрипт :)

9 комментариев:

  1. Первое знакомство и... великолепный тул! Спасибо вам за статью.

    ОтветитьУдалить
    Ответы
    1. Она все-таки пригодилась! :) Вам спасибо за отзыв.

      Удалить
  2. АНХЕЛЬ, настроил всё по мануалу, сервер стартанул, значек зеленый, но в эклипсе, в Connect to SWF, серым написано "Server not connected", будто не запущено никаких swf.
    Конфигурация такая:
    Win 7
    Opera 12.02
    Eclipse build 20130919-0819
    java 1.7.0_17
    Да, проект их, я еще импортировал.

    В чём может быть дело?

    ОтветитьУдалить
    Ответы
    1. В SWFке, увы. Бывают такие, которые почему-то не детектяться, видела лично, вроде тот же Flash, а SWFку не видно. Можно попробовать закрыть SWFку, рестартовать эклипс, посмотреть появится или нет. Если SWFка публичная, можно кинуть мне название, я гляну у себя.

      Удалить
    2. Этот комментарий был удален автором.

      Удалить
    3. АНХЕЛЬ, спасибо, разобрался:
      использовал эклипс: eclipse-jee-kepler-SR1-win32-x86_64,
      а надо было: eclipse-standard-kepler-SR1-win32

      Удалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить
  4. Добрый день, Анхель. Начал ковыряться в Genie с вашей статьи. Спасибо :)

    Вот несколько мыслей, возможно и вам будет интересно:
    http://testerstorehouse.blogspot.com/2014/02/adobe-genie-webdriver-testng.html

    ОтветитьУдалить
    Ответы
    1. Спасибо, рада что кому-то таки пригодилось :) Просмотрела вашу запись, действительно хорошая связка, добавила ссылку на вашу запись в соседний пост.

      Удалить