Flex: тестирование компонентов пользовательского интерфейса на уровне кликов? - PullRequest
5 голосов
/ 13 июля 2009

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

Большинство ошибок, которые возникли до сих пор, связаны с тем, как Flex справляется с перетаскиванием, которое эти библиотеки не могут смоделировать достаточно точно. Например, мне нужно протестировать случай, когда в нижней половине компонента происходит событие «drop» - ни 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:

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

Ответы [ 4 ]

4 голосов
/ 15 декабря 2009

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

2 голосов
/ 24 сентября 2009

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

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

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

1 голос
/ 16 июля 2009

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

1 голос
/ 16 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...