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

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

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

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

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


person Graviton    schedule 08.08.2009    source источник
comment
Это то, что я определенно хотел бы изучить, но пока я сосредоточусь на тестировании и проверке кода нижних уровней нашего приложения. В любом случае, я просмотрел предоставленные вами ссылки, а затем провел небольшое исследование и в итоге нашел блог группы Microsoft UI Automation. Я делюсь им здесь на случай, если вы еще не сталкивались с этим: blogs.msdn.com/winuiautomation   -  person Alfred Myers    schedule 18.08.2009


Ответы (7)


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

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

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

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

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

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

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

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

person Merlyn Morgan-Graham    schedule 16.01.2011

Здесь мы используем тестовый фреймворк White с отличными результатами.

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

person Shane T    schedule 09.08.2009

Я написал гем на основе Ironruby под названием Bewildr, который является оболочкой для среды автоматизации пользовательского интерфейса MS. Он успешно использовался для автоматизации приложений 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/

person Nat Ritmeyer    schedule 30.09.2012

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

Общее впечатление: 8/10.

person Rajneesh    schedule 16.07.2010

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

С уважением,

Себастьян

person Sebastiaan M    schedule 09.08.2009

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

person Graviton    schedule 17.08.2009
comment
@Greg, это потому, что я предложил награду за этот вопрос, но когда период закончился, ни один из ответов не был удовлетворительным, но меня все же заставили выбрать принятие в качестве принятого ответа. Это был смысл написания и принятия фиктивного ответа. - person Graviton; 27.01.2010
comment
Нет причин принимать какой-либо ответ, если нет ответа, который стоит принять. Оставьте вопрос открытым! - person Elmue; 17.01.2017

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

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

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

person Russell    schedule 18.08.2009