Selenium Grid + Sikuli кто-нибудь использовал вместе?

java
webdriver
sikuli
Теги: #<Tag:0x00007fedc7a51150> #<Tag:0x00007fedc7a51010> #<Tag:0x00007fedc7a50ed0>

(Serge Shilin) #1

Есть ли саксес стори использования Sikuli через Selenium Grid? Пока двигаюсь в направлении Sterodium. Можете посоветовать что-нибудь еще?


(Sergey Korol) #2

А что значит "через"? Это 2 разных библиотеки. Если вопрос состоит в том, как запустить SikuliX удаленно, то поиск по форуму как правило помогает... :wink:

http://automated-testing.info/t/restful-sikulix-udalennoe-upravlenie-skriptami/5255

Собственно начиналось все как раз с саксес стори использования на реальном проекте, а потом уж решил залить сорсы в качестве официального PR.

Ремоут модули было решено перенести в SikuliX2 версию, т.к. они еще сыроваты. Да и главный коммитер пока не спешит переходить на восьмую java.

Сейчас особо нет времени на саппорт. Но если есть какие-то пожелания / предложения, создавайте issues, будем смотреть. Хотя, для базовой ремоутной работы имеющегося функционала должно хватить.


(Serge Shilin) #3

Просто нужен инструмент для масштабирования тестов с использованием библиотек Sikuli. Есть задача протестировать работу апплета на более чем 400 различных конфигурациях ПО(ОС+браузеры+JRE и т.д.). Подобные задачи хорошо решаются через Selenium Grid, допиленный под Sikuli. Мне как раз было интересно решал ли кто-нибудь подобные задачи и как?


(Sergey Korol) #4

Разработчики Selenium никогда не включат Sikuli в свои сорсы. Ровно как и наоборот. Makes no sense.
Задача с масштабированием решается выше описанным способом. Restful SikuliX - это тот же старый добрый сикули, но только помещенный внутрь http сервера с торчащими наружу end-points, которые дергаются Jersey клиентом. Разница лишь в том, что помимо грида, у вас будет висеть еще один процесс - сикули сервер. А в ваш автомейшен фреймворк будет подключаться клиентский депенденси. Вот и вся магия.


(Echo Alexey) #5

Привет,

Sterodium - Selenium grid extensions изначально возникли как внутренние плагинчики для Selenium Grid'a, чтобы решить проблемы тестирования сложных UI компонентов (noVNC, Canvas и т.д), в последствии были выложены в общий доступ.
Используем их внутри большой организации (более 100 команд) на гридах различных размеров (от ~ 2 до 200 нод).

Простой RESTful SikuliX не решает проблему идентификации хоста, где в данный момент исполняются селениум тесты. Поэтому у нас есть extension прокси, который ставиться на хаб и перенаправляет проксированные вызовы API на правильную ноду.

=) Заходи в чатик https://gitter.im/sterodium/selenium-grid-extensions если будут какие доп. вопросы.


(Sergey Korol) #6

Да ну? Получить IP текущей ноды из сессии можете? Можете. Передать IP в качестве connection url sikuli серверу можете? Можете. Вот и вся идентификация.


(Echo Alexey) #7

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


(Sergey Korol) #8

Ну это уже крайности. Форвардить сикули реквесты можно чем угодно. Вы выбрали подход с прокси и кастомными сервлетами. Вполне нормальный вариант. Но это не значит, но он является единственным рабочим.

Все таймауты настраиваются на уровне грида. Или у вас сикули может висеть часами, выполняя один сценарий?


(Echo Alexey) #9

Согласен, уж точно не единственный.

Часами нет, но минуты - да. В нашем сетапе запросы сикули обновляют сессию, а время таймаутов не превышает 30сек.


(Serge Shilin) #10

Не совсем понятно как получить sikulixremoteserver-1.1.0-jar-with-dependencies.jar.

Зачекаутил SikuliX2.
Добавил

<dependency>
        <groupId>com.sikulix</groupId>
        <artifactId>sikulixapi</artifactId>
        <version>1.1.0</version>
</dependency>

Запустил mvn clean install. Выдает ошибку:

[ERROR]     Non-resolvable parent POM: Failure to find com.sikulix:sikulixtensions:pom:2.0.0-b1 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution
will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 13 -> [Help 2]
org.apache.maven.model.resolution.UnresolvableModelException: Failure to find com.sikulix:sikulixtensions:pom:2.0.0-b1 in http://repo.maven.apache.org/maven2 was cached in the local
repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced

(Sergey Korol) #11

Главный коммитер видимо переименовал каталоги, не убедившись в работоспособности всех модулей. sikulixtensions уже не существует. По всей видимости, теперь это sikulix2addons. Ну и версии модулей перепроверьте.


(Serge Shilin) #12

У Вас случайно не осталось скомпилированных jar ремоут модулей? Исправление имен модулей не помогло. Запускал на Idea jdk 8u45:


(Sergey Korol) #13

Я не думаю, что вам нужен весь SikuliX2, который еще совсем сырой. Создайте чистый maven проект и закиньте в него 3 модуля: core / client / server. Уберите лишние ссылки на несуществующие модули.


(Sergey Korol) #14

Покопался в вашем расширении. Вы ссылаетесь на sikuli-api, который не имеет ничего общего с единственным официально поддерживаемым на текущий момент SikuliX. Отсюда логичный вопрос - когда собираетесь обновляться, и собираетесь ли вообще? Идея расширений то неплохая, но вот использование мертвых библиотек - весьма сомнительное удовольствие.