автоматизация пользовательского интерфейса c #

Я пытаюсь автоматизировать графический интерфейс в С #. Это то же самое, что автоматизация браузера. как я могу начать автоматизацию пользовательского интерфейса


person manish patel    schedule 20.01.2010    source источник
comment
Пожалуйста, перефразируйте вопрос.   -  person Bobby    schedule 20.01.2010
comment
Вы действительно имеете в виду UI анимацию? Или, может быть, вы пытаетесь реализовать автоматизацию для тестирования пользовательского интерфейса? Пожалуйста, добавьте более подробную информацию.   -  person Ash    schedule 20.01.2010
comment
Возможный дубликат (но еще не получен полный ответ): stackoverflow.com/questions/2052915/   -  person Abel    schedule 20.01.2010


Ответы (7)


Вы можете использовать библиотеку Microsoft UI Automation, но это не очень весело. "Белый" - лучшая альтернатива ... см.: http://www.codeplex.com/white

РЕДАКТИРОВАТЬ:

Новый URL-адрес «Белого» проекта, поскольку он был перемещен в TestStack на GitHub: https://github.com/TestStack/White

person Nat Ritmeyer    schedule 07.03.2010
comment
почему лучше? разве он не мертв? (После версии 0.21 обновлений не вижу) - person Elad Katz; 28.08.2012
comment
Тесты, написанные с использованием библиотеки Microsoft UI Automation, являются подробными, в меньшей степени с White. И я не думаю, что он мертв, он просто выполняет то, что хотят от него 99% людей. Нет смысла менять код только для того, чтобы проект выглядел живым ... - person Nat Ritmeyer; 29.08.2012
comment
Если то, что я делаю, связано не с тестированием, а с подключением к другим окнам для целей автоматизации, а мой код довольно общий (мне нужно поддерживать много разных приложений), тогда White не будет хорошим выбором, не так ли? Насколько я понимаю, UIA более общий и поэтому подробный, тогда как Уайт использует более простой для понимания и чтения синтаксис, но менее приспособлен к созданию универсального кода? - person Elad Katz; 01.09.2012

Если вы используете WPF, у Microsoft есть очень подробная библиотека автоматизации пользовательского интерфейса.

http://msdn.microsoft.com/en-us/library/ms747327.aspx

Я осмотрелся, но не нашел эквивалента для WinForms.

person Alastair Pitts    schedule 20.01.2010
comment
Очень интересно, я не знал об этом. Есть некоторые сторонние инструменты тестирования, которые позволяют автоматизировать пользовательский интерфейс с помощью Winforms, Ranorex (ranorex.com) является одним из них. . - person Tim Jarvis; 20.01.2010

WiPFlash - хорошая, простая в использовании оболочка с открытым исходным кодом поверх библиотеки автоматизации пользовательского интерфейса Microsoft. Но они ограничены базовой структурой Microsoft Automation.

person Klee    schedule 01.04.2011

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

MS UI Automation будет трудно найти эти причудливые сетки, прекрасные меню и красивые значки.

Говоря о TestStack.White, он использует MS UI Automation в качестве краеугольного камня, поэтому он столкнется с той же проблемой при поиске подробных элементов графического интерфейса.

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

person Richard    schedule 27.10.2017
comment
Привет! В моем приложении WPF используются элементы управления DevExpress. Какой инструмент вы предлагаете для автоматизации пользовательского интерфейса? - person Apoorv; 12.11.2019
comment
Для сетки в качестве примера мы разработали дополнительную вспомогательную функцию в приложении (сторона Devexpress), которая: 1. возвращает имена столбцов назад 2. выбирает строку по (имя столбца, значение). требование автоматического тестирования и возможности, которые может предоставить MS UI Automation. Мы сделали то же самое для других сложных элементов управления, таких как древовидные структуры, графические вкладки, полосы значков и т. Д. Так как тестовые скрипты вызывают «вспомогательные» функции, мы использовали COM. Очевидно, что для программы Winform или программы WPM COM является более простым способом взаимодействия между процессами. - person Richard; 14.11.2019
comment
Можете ли вы поделиться образцом, в котором реализована DevExpress Grid, если это возможно? Я хочу изучить реализацию, поскольку я очень новичок в этом. Просто захотелось узнать, какие усилия и стоят ли они? - person Apoorv; 14.11.2019
comment
Извините, я не знаю, как наши разработчики закодировали дополнительный помощник в тестируемом приложении. Владелец продукта должен согласиться внедрить дополнительный код в свое программное обеспечение, что для меня является немедленным наращиванием усилий. Если масштабировать усилие от легкого, среднего, тяжелого, то я бы сказал, что среднее усилие. - person Richard; 14.11.2019
comment
Поддержка DevExpress была последней частью всей структуры автоматизации тестирования для нашего приложения для Windows. Это было достойно нашего положения. Мы потратили целый год на разработку автоматизированных тестов с использованием фреймворка, в котором была исправлена ​​поддержка DevExpress. И тесты принесли компании большую пользу. Без патча Devexpress, который мы разработали, POC не удалось бы, и не было бы никаких последующих работ в этой области. - person Richard; 07.01.2020
comment
можно поделиться POC, который вы сделали. Мне все еще трудно делать здесь вещи - person Apoorv; 13.01.2020
comment
Уже сменил работу, извините, я хочу, но ничем не могу помочь. - person Richard; 14.01.2020
comment
Спасибо :) Похоже, в DevExpress есть дополнительная поддержка для получения видимых строк с помощью автоматизации UIA от Microsoft. Я ищу сейчас эквивалент FlaUI. devexpress.com/ Поддержка / Центр / Вопрос / Подробности / T546814 / - person Apoorv; 26.01.2020
comment
У них, если это недавно, то наконец .... - person Richard; 31.01.2020

FlaUI - хорошая альтернатива «белой» библиотеке, основанной на собственных библиотеках автоматизации пользовательского интерфейса от Microsoft.

person ilCosmico    schedule 18.04.2019
comment
Парень из FlaUI сказал мне, что они даже тестировали фреймворк с элементами управления DevExpress. - person Apoorv; 14.11.2019

http://msdn.microsoft.com/en-us/library/ms747327.aspx, как указал Аластер Питтс, можно использовать. Насколько мне известно, он должен подходить для любых задач автоматизации - до тех пор, пока Windows распознает элемент управления, который ваше приложение использует как стандартные элементы управления или элементы управления, поддерживающие автоматизацию. Что должно быть применимо практически ко всем основным поставщикам средств управления. И определенно MFC, Win32, WinForms и, возможно, WPF и Silverlight.

Вы можете получить представление о том, что вы делаете (против), запустив Spy ++ и посмотрев, что он отображает.

Вы также можете прислушаться к другим идеям, используя такие инструменты, как White (открытый исходный код) или Rannorex (коммерческий).

person Andreas Reiff    schedule 17.05.2011

9 лет спустя Appium - хороший вариант, также справочная сторона от Microsoft, поскольку CodedUI устарел. Microsoft создала WinAppDriver для Appium. Вы также можете просто использовать WinAppDriver для тестирования своего графического интерфейса. вам нужен Appium, просто если вы хотите сделать contionouos интеграцию.

Различия:
Teststack.White - это эффективная Testframework. Для прохождения тестов ему не нужно столько времени, как WinAppDriver (Appium), и его очень легко реализовать в вашем тестовом проекте. Но поддержка не так хороша, как WinAppDriver. Teststack.White как пример все еще не поддерживает UWP (возможно, никто не хочет разрабатывать с UWP: P). С другой стороны, для работы с WinAppDriver вам потребуется Windows 10 или Windows Server 2016. Оба имеют простую реализацию тестов, но вам нужно установить некоторые JSON-значения, чтобы получить http-соединение с WinAppDriver.
По крайней мере, WinAppDriver с Appium имеет гораздо больше возможностей, но TestStack.White легко реализуется.

person Björn Ammon    schedule 04.06.2019
comment
Можно ли его использовать для тестирования сторонних элементов управления, таких как DevExpress Grid? - person Apoorv; 12.11.2019
comment
Прошу прощения за поздний ответ. Это должно быть возможно, попробуйте. - person Björn Ammon; 05.07.2020
comment
да. Это сработало. Необходимо включить несколько настроек, чтобы иметь полный контроль над автоматизацией. И DevExpress Support также помогает в этом - person Apoorv; 06.07.2020
comment
Приятно слышать и знать. Тай для информации. - person Björn Ammon; 07.07.2020