Как и обещала в предыдущем посте, расскажу самые основные моменты в использовании White для тестирования Windows приложений. Фактически, все рассказанное является кратким содержанием документации.
Работа с приложением и окном.
Запуск приложения и нахождение его окна
Нахождение модальных окон для главного окна:
Закрытие окна
Закрытие приложения
Поиск контролов
Все контролы наследуются от базового класса UIItem
1. Поиск контрола по идентификационному свойству
2. Поиск контрола на основе SearchCriteria
SearchCriteria представляет собой класс, который хранит комбинацию свойств, по которым будут искаться контролы.
Принцип поиска контролов - сначала ищутся контролы верхнего уровня, т.е. находящиеся непосредственно внутри окна. Дочерние контролы для найденных контролов ищутся уже внутри них, а не внутри окна.
Основные способы идентификации контролов
Все контролы наследуются от базового класса UIItem
Внутри окна любой UIItem может быть найден на основе следующих критериев:
1. AutomationID - свойство, проставляемое контролу приложения, однозначно идентифицируещее контрол.
для управляемых приложений (WPF , WinForm )
для неуправляемых приложений (SWT, Win32 )
2. Тип UIItem (например Button, ComoboBox)
3. Индекс. Используется в случае наличия нескольких одинаковых UIItem, например, с одинаковым свойством AutomationId.
Работа с основными контролами.
Находится здесь, здесь.
Работа с клавиатурой и мышью - здесь.
Работа с Third Party Controls
White работает поверх фреймворка UIAutomation в .Net. Поэтому чтобы использовать его со сторонними контролами вашего приложения, нужно убедиться, что эти контролы поддерживаются UIAutomation. Для этого можно использовать UISpy или UIAutomationVerify.
Когда контрол поддерживается, эта утилитка отобразит внутренние детали контрола в дереве контролов вашего приложения.
Работа с приложением и окном.
Запуск приложения и нахождение его окна
Нахождение модальных окон для главного окна:
Закрытие окна
Закрытие приложения
Поиск контролов
Все контролы наследуются от базового класса UIItem
1. Поиск контрола по идентификационному свойству
2. Поиск контрола на основе SearchCriteria
SearchCriteria представляет собой класс, который хранит комбинацию свойств, по которым будут искаться контролы.
Принцип поиска контролов - сначала ищутся контролы верхнего уровня, т.е. находящиеся непосредственно внутри окна. Дочерние контролы для найденных контролов ищутся уже внутри них, а не внутри окна.
Основные способы идентификации контролов
Все контролы наследуются от базового класса UIItem
Внутри окна любой UIItem может быть найден на основе следующих критериев:
1. AutomationID - свойство, проставляемое контролу приложения, однозначно идентифицируещее контрол.
для управляемых приложений (WPF , WinForm )
для неуправляемых приложений (SWT, Win32 )
2. Тип UIItem (например Button, ComoboBox)
3. Индекс. Используется в случае наличия нескольких одинаковых UIItem, например, с одинаковым свойством AutomationId.
Работа с основными контролами.
Находится здесь, здесь.
Работа с клавиатурой и мышью - здесь.
Работа с Third Party Controls
White работает поверх фреймворка UIAutomation в .Net. Поэтому чтобы использовать его со сторонними контролами вашего приложения, нужно убедиться, что эти контролы поддерживаются UIAutomation. Для этого можно использовать UISpy или UIAutomationVerify.
Когда контрол поддерживается, эта утилитка отобразит внутренние детали контрола в дереве контролов вашего приложения.
Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!
ОтветитьУдалитьЭто просто спасательный круг :)
Пожалуйста :)
УдалитьСупер. Спасибо!
ОтветитьУдалитьНо все-таки, если есть деньги на Visual Studio Ultimate или Visual Studio Premium, лучше использовать Coded UI Tests.
УдалитьВозможно задам глупый вопрос, я новичек в автоматизации тестирования Windows-приложений. Обычно работал с Web'ом. Обычно использовал FireBug и ему подобные для поиска идентификаторов элементов. Есть ли какой-либо аналог для Windows приложений?
ОтветитьУдалитьИли каким еще способом можно однозначно идентифицировать элемент интерфейса в данном случае?
Аналог для Windows приложений - UISpy или UIAutomationVerify, как я писала выше, можно найти в нете и скачать.
УдалитьДля .Net приложений однозначно идентифицировать элемент интерфейса поможет свойство AutomationId.
Например, для Wpf-приложения, в xaml окна для контрола свойству AutomationId соответствует "UId", устанавливается оно вот так:
http://msdn.microsoft.com/ru-ru/library/bb613571.aspx
Благодарю, будем учиться)
УдалитьОтличное описание. Спасибо!
ОтветитьУдалить