Есть ли кто-нибудь, кто успешно реализует режим автоматизации тестирования пользовательского интерфейса с помощью Microsoft UI Automation?

Я ищу автоматизированный интерфейс/программный инструмент для тестирования пользовательского интерфейса. Раньше я использовал TestComplete, и хотя это была хорошая часть программного обеспечения, но концепция автоматизации тестирования GUI считалась достаточно сложно, что я написал несколько сообщений в жалоба об этом.

Одна из проблем с инструментом автоматизации тестирования сторонних разработчиков заключается в том, что вы должны изучать новый язык для того, чтобы быть продуктивным на нем, не говоря уже о том, что поддержка инструментальных средств неудовлетворительна. Теперь я планирую изучить Microsoft UI Automation, который поставляется с .Net 3.0 и Белые рамки. Но прежде чем я это сделаю, я хочу знать, какой результат там.

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

Изменить: Это кажется очень сложным вопросом. Я бы установил щедрость за это, если в течение этих нескольких дней я не получу никаких ответов.

Ответ 1

Холодная реакция... Лучше я отвечу на фиктивный ответ, на всякий случай нет хорошего ответа на этот вопрос.

Ответ 2

Это очень поздний ответ (вы, вероятно, уже отправлены), но я тестировал приложение WPF с ним.

У меня было много хлопот, когда я использовал версию beta1 VS2010 и столкнулся с некоторыми ошибками. Используя версию выпуска, у меня было меньше проблем.

Это было сложно, потому что я одновременно изучал WPF, VS UI automation и WPF/Windows. Тот факт, что трудно создать пуленепробиваемые автоматизированные тесты пользовательского интерфейса, добавляется к этой сложности.

После RTM VS2010 у меня все еще возникали прерывистые проблемы с собственной/настраиваемой страницей, которую мы завернули. Я думаю, что это было частично связано с проблемой родительского контроля и частично из-за проблемы с потоками/процессами.

Самая большая головная боль, с которой я столкнулась, заключалась в том, когда я пытался протестировать некоторый контроль, который мы использовали из инструментария WPF, в частности, элемента управления DataGrid. У него были некоторые известные ошибки автоматизации пользовательского интерфейса, и у меня было чертовски время вокруг них.

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

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

Я не использовал его в течение последних 6 месяцев, поэтому ваш пробег может измениться.

Ответ 3

Мы используем среду тестирования White здесь с отличными результатами.

В структуре используется обмен сообщениями win32 для поиска элементов управления и взаимодействия с ними. Однако он довольно медленный в больших формах с большим количеством элементов управления, но это единственный недостаток, с которым я столкнулся. Мы также автоматизируем тестирование с использованием buildbot и nunit-console.

Ответ 4

Я написал жемчужину, основанную на железе под названием Bewildr, которая обертывает структуру автоматизации MS UI. Он был успешно использован для автоматизации приложений MS WPF в различных компаниях, включая BBC. Вот пошаговое руководство по его использованию: http://www.natontesting.com/2011/08/27/step-by-step-example-of-bdding-a-wpf-app-with-cucumber-rspec-ironruby-and-bewildr/

Ответ 5

Я использую инфраструктуру MS UI Automation, используя С#.net, и я нашел это чрезвычайно простым и полезным. Никаких проблем не наблюдалось как таковое, но у него нет поддержки генерации отчетов, поэтому вам нужно написать свою собственную логику для этого на основе ваших конкретных тестовый пример.

Общий уровень удовлетворенности: 8/10.

Ответ 6

У меня нет опыта работы с Microsoft UI Automation, но я использую AutoIt (http://www.autoitscript.com/autoit3/), чтобы сделать немного GUI автоматизации. Я использую его для проверки надстройки Visual Studio. Не совсем ответ на ваш вопрос, но это может быть интересно для вас.

Привет,

Sebastiaan

Ответ 7

Ive использовал легкую версию автоматического тестирования пользовательского интерфейса для платформы .net, используя аналогичный подход к этому:

http://msdn.microsoft.com/en-us/magazine/cc163864.aspx

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