Подтвердить что ты не робот

Кто-нибудь использовал SIKULI для тестирования своих графических приложений?

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

4b9b3361

Ответ 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 (для распознавания текста), он обладает невероятным количеством мощности и гибкости.

Ответ 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] по своему внешнему виду". Я опасаюсь усилий, требуемых, когда изменения превышают "немного". Интерфейс впечатляет, но чрезмерные ложные срабатывания могут легко замедлить тестирование.

Ответ 9

Я на самом деле пишу рамки для тестирования GUI/обработки ошибок с помощью sikuli. Это здорово.

Ответ 10

Я использовал сикули для тестирования графического интерфейса, также я смог интегрировать его с HUDSON.

Ответ 11

Я только что опубликовал свою собственную инфраструктуру для тестирования приложений GUI с использованием Skikuli + RobotFramework.

SikuliFramework предоставляет объектно-ориентированную абстракцию поверх Sikuli, чтобы помочь взаимодействовать с элементами GUI, такими как наборы кнопок, флажки, переключатели, окна и диалоговые иерархии для автоматизации и тестирования GUI. Он также имеет тесную интеграцию с RobotFramework.

https://github.com/smysnk/sikuli-framework

Ответ 12

Sikuli основан на статическом согласовании изображений. Поэтому он подходит только для ситуаций, когда GUI достаточно стабилен. Для динамического графического интерфейса, такого как анимация или графический интерфейс, который включает в себя некую случайность, он не применим.

И Sikuli охватывает только визуальную часть тестируемого. Он не знает, действительно ли внутреннее состояние, как и ожидалось.