SIKULI, кажется, обладает огромным потенциалом. Кто-нибудь пытался использовать это как инструмент для тестирования? Или он лучше подходит для автоматизации действий для пользователей?
Кто-нибудь использовал SIKULI для тестирования своих графических приложений?
Ответ 1
Цитата Unit Testing for GUI (в проекте Documentation):
Sikuli предназначен для поддержки модульного тестирования для графического интерфейса пользователя путем интеграции с junit. Панель тестирования устройства можно открыть, нажав кнопку "Просмотр/ Unit Test" или ярлык Cmd-U на Mac (или Ctrl-U в Windows/Linux).
Итак, хотя я понимаю, что SIKULI первоначально нацелен на автоматизацию графического интерфейса, его можно определенно использовать для тестирования GUI (что тесно связано, если вы считаете, что GUI-тестирование = автоматизация GUI + система проверки). Посмотрите Единичное тестирование для GUI (JEdit) для полного примера (и см. assertXXX
на изображениях).
И действительно, я вижу большой потенциал в тестировании SIKULI, так как кажется, что писать тесты очень просто, даже без отдельной строки реального приложения, написанного (например, с использованием некоторых исходных макетов). SIKULI может стать отличным компаньоном для различного вкуса тестирования (BDD, приемочные испытания и т.д.).
Это действительно потрясающая часть программного обеспечения, очень впечатляющая.
Ответ 2
Я использую Sikuli для автоматизации тестирования пользовательского интерфейса. Я "опаздываю" на сторону Сикули, открыв ее в январе 2011 года. На самом деле я рад, что обнаружил это поздно, потому что, хотя это было обещание раньше, я не думаю, пока Sikuli x1.0-rc1 (что произошло в декабре ) был выпущен, что он был готов к прайм-тайм.
Раньше я использовал TestQuest и EggPlant для автоматизации тестирования пользовательского интерфейса. На мой взгляд, Сикули бьет их обоих руками. Я искренне верю, что у него есть потенциал для радикального изменения того, как люди выполняют автоматизацию тестирования пользовательского интерфейса для лучшего и будут проповедовать его людям вокруг меня.
Использование Sikuli правильно означает, что вы не следуете модели "запись и воспроизведение". Скорее, вам нужно подойти к разработке автоматизации тестирования с помощью Sikuli - как вам нужно со всеми инструментами - в качестве задачи разработки программного обеспечения.
В настоящее время мы осуществляем перенос интерфейса DSL (Domain Specific Language), который мы создали для EggPlant для Sikuli. Одной из ключевых особенностей, которые мы будем использовать в нашей DSL, являются возможности распознавания текста Sikuli. Это позволит нам запускать те же script в различных локализованных версиях нашего продукта.
Поскольку Sikuli основывается на OpenCV (для распознавания образов) и tesseract- ocr (для распознавания текста), он обладает невероятным количеством мощности и гибкости.
Ответ 3
Также см. статью: http://groups.csail.mit.edu/uid/projects/sikuli/sikuli-chi2010.pdf
Ответ 4
Записан рабочий процесс с помощью веб-приложения Flex. Понадобилось время, чтобы найти надежную стратегию для создания скриншотов, но как только я это сделал, script продолжал работать даже после того, как я изменил схему рабочего стола! Синтаксис становится немного неудобным, хотя, когда вам нужно щелкнуть конкретный элемент управления в коллекции похожих элементов управления, то есть флажков, полей ввода. Похоже, что единственный способ сделать это - использовать find()
в сочетании с right(); left(); inside()
. Похоже, чем меньше скриншоты, тем более надежно они обнаруживаются. Имо хорошая практика заключалась бы в том, чтобы включать только значимые объекты на скриншоты и сделать их максимально возможными, но без ущерба для их уникальности.
Ответ 5
@jordan, Абсолютное пятно на "Правильном использовании Sikuli" означает, что вы не следуете модели "записи и воспроизведения". Скорее, вам нужно подойти к разработке автоматизации тестирования с помощью Sikuli - как вам нужно со всеми инструментами - в качестве задачи разработки программного обеспечения.
Я создал комплексное решение для автоматизации тестирования для тестирования приложения для видеоконференций, сделанного крупнейшим производителем ПК в мире. Они не понимали, что это полноценный проект dev, а не операция точки и щелчка, которую могла выполнить любая обезьяна. Попытка объяснить проблемы кодирования динамически типизированным языком была невозможна.
Из моего опыта самой большой проблемой является управление изображениями. Я использовал файловую систему и configparser для первой итерации автоматизации тестирования. Использование configparser работало, однако было трудно реализовать. В будущем я планирую использовать капли. Sikuli не поддерживает прямое извлечение изображений из БД (пока), хотя у меня есть работа.
Использование среды IDE имеет решающее значение, поскольку SICUI IDE не имеет инструментов разработки и разработки. 2 IDE, которые я настроил, NetBeans и Eclipse/PyDev имеют свой собственный набор проблем. Они отлично подходят для кодирования, но ошибочные ошибки, инъекция пробелов и потеря кода делают как менее идеальные решения. Я кодирую и тестирую в NetBeans, выполняю в SikuliIDE и сохраняю все в блокноте в качестве резервной копии.
Несмотря на любые трудности, я встречаюсь с Сикули. Sikuli имеет потенциал для изменения автоматизации тестирования, что делает его доступным для всего сообщества QA без необходимости быть кодовым OO.
Ответ 6
Для менее централизованной автоматизации тестирования для Sikuli, также проверьте RobotFramework.org. Там учебник о том, как создать (пользовательскую) тестовую библиотеку Sikuli для Robot Framework
http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html
и я также создал простую общую версию
http://code.google.com/p/simplesikuli
И если бы были ограничения для Sikuli с точки зрения обработки окон, управления графическим интерфейсом, взаимодействия с мышью и клавиатурой, вы всегда можете дополнить его еще одним большим бесплатным инструментом тестирования: AutoIt. AutoIt сам по себе также имеет ограничения, когда вы совмещаете его с Sikuli, они компенсируют недостатки каждого инструмента, чтобы заменить инструменты тестирования графического интерфейса коммерческих классов.
Ответ 7
Этот видео упоминает, что "он терпит небольшие изменения [sic] по своему внешнему виду". Я опасаюсь усилий, требуемых, когда изменения превышают "немного". Интерфейс впечатляет, но чрезмерные ложные срабатывания могут легко замедлить тестирование.
Ответ 8
Здесь я беру на себя удивительность Сикули для автоматизации тестирования: http://pculture.org/devblogs/mirotesting/2011/06/24/using-sikuli-to-automate-miro-testing/
У меня есть надежный кросс-платформенный набор тестов для Miro.
Ответ 9
Я на самом деле пишу рамки для тестирования GUI/обработки ошибок с помощью sikuli. Это здорово.
Ответ 10
Я использовал сикули для тестирования графического интерфейса, также я смог интегрировать его с HUDSON.
Ответ 11
Я только что опубликовал свою собственную инфраструктуру для тестирования приложений GUI с использованием Skikuli + RobotFramework.
SikuliFramework предоставляет объектно-ориентированную абстракцию поверх Sikuli, чтобы помочь взаимодействовать с элементами GUI, такими как наборы кнопок, флажки, переключатели, окна и диалоговые иерархии для автоматизации и тестирования GUI. Он также имеет тесную интеграцию с RobotFramework.
Ответ 12
Sikuli основан на статическом согласовании изображений. Поэтому он подходит только для ситуаций, когда GUI достаточно стабилен. Для динамического графического интерфейса, такого как анимация или графический интерфейс, который включает в себя некую случайность, он не применим.
И Sikuli охватывает только визуальную часть тестируемого. Он не знает, действительно ли внутреннее состояние, как и ожидалось.