Гибкий:Тестируете компоненты пользовательского интерфейса на уровне клика?

StackOverflow https://stackoverflow.com/questions/1120698

Вопрос

Я работаю над компонентом Flex и хотел бы написать для него несколько автоматических тестов.Проблема в том, что инструменты тестирования пользовательского интерфейса, которые я рассматривал (FlexMonkey и Селен Flex API) не имитируйте «достаточно»:

Большинство обнаруженных ошибок связано с тем, как Flex обрабатывает перетаскивание, которое эти библиотеки не могут смоделировать достаточно точно.Например, мне нужно протестировать случай, когда происходит событие «перетаскивания», которое происходит в нижней половине компонента — ни FlexMonkey, ни Selenium Flex API не могут этого сделать (они могут имитировать событие мыши, но они не будут включать координаты).

Итак, есть ли «хороший» способ автоматизировать такое тестирование?

Редактировать:После долгих исследований выяснилось, что единственное программное обеспечение, которое может это сделать, — это iMacros, который предназначен только для Windows и имеет интерфейс...Не хватает.Так что я собираюсь быть пишу свой собственный.По сути, он будет включать HTTP-интерфейс. java.awt.Robot поэтому код (на любом языке) может имитировать события мыши/клавиатуры.Если вам интересно, напишите мне в личку, и я буду держать вас в курсе.

Редактировать 2:Я опубликовал первую версию написанного мной фреймворка, Blunderbuss, на BitBucket: http://bitbucket.org/wolever/blunderbuss/ .Для его запуска вам понадобится Jython (http://www.jython.org/), но после этого flex-client пример должен работать.

Видео из Blunderbuss в прямом эфире на Vimeo:

На данный момент это остается проверкой концепции, так как у меня не было времени очистить ее и сделать более удобной для использования… Но, возможно, достаточное количество людей, которые меня беспокоят, дадут мне на это время :)

Это было полезно?

Решение

я использовал Баклажан для тестирования приложений Flash и AIR без необходимости добавления каких-либо обработчиков в код.Это отличный инструмент, но он довольно дорогой.Он имитирует реального пользователя путем подключения к системе через VNC и, среди прочего, использует распознавание изображений для взаимодействия с приложением.

Другие советы

Меня определенно интересует ваш собственный класс Java, и (хотя я не лучший в Java (пока...)), я был бы готов помочь, если вы думаете о создании этого сотрудничества.

Что касается Flash MouseEvents.К сожалению, на самом деле не существует точного способа имитировать перетаскивание во Flash.События MouseEvent, генерируемые мышью, обрабатываются совершенно иначе, чем обычные события, и хотя вы можете имитировать действия, передавая события в функции обработки или заставляя диспетчер запускать новый DragEvent( DragEvent.DRAG_DROP..., он это не будет то же самое, что взаимодействие пользователя с ним.А для некоторых функций (например, получения доступа к буферу обмена) ничто внутри Flash не достигнет ваших целей.

Честно говоря, вы, вероятно, движетесь в правильном направлении: лучше всего использовать что-то, что не написано во Flash, для управления фальшивыми событиями мыши.

Мне никогда не приходилось использовать его во Flex, но недавно я наткнулся на некоторую информацию о пакетах автоматизации в MS Surface SDK...изучив его, эти классы автоматизируют поведение пользователя, которое можно использовать для тестирования, т.е.переместите фальшивую мышь в эту точку и выполните это действие.Как вы используете Пакеты и классы Flex mx.automation.Я предполагаю (и надеюсь), что с помощью этих классов вы сможете добиться того, чего хотите.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top