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

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

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

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

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

Ответы [ 7 ]

4 голосов
/ 16 января 2011

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

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

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

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

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

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

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

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

3 голосов
/ 09 августа 2009

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

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

2 голосов
/ 01 октября 2012

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

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

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

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

0 голосов
/ 18 августа 2009

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

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

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

0 голосов
/ 17 августа 2009

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

0 голосов
/ 09 августа 2009

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

С уважением,

Sebastiaan

...