Как интегрировать сценарии Sikuli в Selenium?
Я широко использую Selenium для интеграционного тестирования. Прекрасно работает для всех нормальных вещей (HTML/AJAX), но не стоит, когда я пытаюсь протестировать сторонние ActiveX, Java-апплеты и Flash-компоненты.
Решение, которое я нашел для этого, - Sikuli. Прекрасно работает в местном масштабе, но как я могу интегрировать это в Selenium?
Кстати. если это актуально, для Selenium я использую Python API.
6 ответов
См. Раздел Python документации Selenium RC: http://seleniumhq.org/docs/05_selenium_rc.html
Вы можете запустить тесты Selenium из Jython. В этом случае вы можете просто интегрировать сценарии Selenium в свои сценарии Sikuli.
Попробуйте следующее в Sikuli IDE. Возможно, вам придется изменить операторы импорта, чтобы они указывали на определенные файлы в проекте Selenium.
from selenium import selenium # this will probably need tweaking...
slm = selenium("localhost", 4444, "*firefox", "http://www.google.com/")
slm.start()
# etc...
Этот парень, похоже, успешно управлял Selenium из Jython: http://adam.goucher.ca/?p=367
Мой вывод: вероятно, будет проще всего остаться в Jython и оттуда контролировать Selenium. Вы можете интегрировать оба инструмента в один скрипт.
Возможности Sikuli можно использовать в Selenium Grid. Это требует, чтобы дополнительные библиотеки были установлены на каждом узле и концентраторе.
Проверьте этот проект, чтобы узнать больше
Я не думаю, что есть способ объединить оба. AFAIK Sikuli не имеет интерфейса командной строки или каких-либо API.
Кстати, мы используем iMacros Enterprise Bundle для нашего тестирования Flash / AJAX, он имеет функции распознавания изображений, подобные Sikuli. Так что это своего рода смесь Sikuli и Seleninum. Прост в использовании, но это коммерческое решение. Поэтому я не уверен, что это вариант для вас.
Если вы хотите запускать функции Sikuli удаленно на Selenium Grid, то, похоже, вам придется каким-то образом делать это с Selenium Augmenter. Ни один из ответов здесь не показывает, как удаленная Grid, например, с использованием SauceLabs, получит функциональность Sikuli. Возможно, проекту Selenium еще не удалось расширить класс Augmenter для загрузки внешних библиотек, таких как Sikuli?
По этой причине, когда я использую Sikuli, мне всегда приходится использовать не удаленный стандартный локальный экземпляр WebDriver.
Вы можете расширить Selenium Server, чтобы он мог выполнять сценарии SIKULI ( см. Это, как вызывать их из Java).
Однако вам нужно будет развиваться на Java, поскольку Selenium Server - это приложение на Java.
Если вам не нужно использовать пользовательские или специальные тестовые рамки, одним из вариантов является Robot Framework (RF). Он имеет библиотеку Selenium, и есть инструкции по использованию Sikuli с RF. Имея это в виду, вы можете объединить два вместе, используя RF. Плюс RF имеет некоторые хорошие встроенные функции автоматизации тестирования.
robotframework.org
http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html