UI тестирование WPF приложений в Дойче Банке
-
Upload
gosharp -
Category
Technology
-
view
108 -
download
5
Transcript of UI тестирование WPF приложений в Дойче Банке
Identifier Deutsche Bank
IMPORTANT NOTES WHEN WORKING WITH SCREENSHOW'S
SAVE AS .PPTX ONLY
PRINTING INSTRUCTIONS In order to print correctly, ensure the following print settings are used: — Color/grayscale: Color (regardless of printing in b/w) — Scale to fit paper: ON — Print hidden slides: OFF
WORKING WITH CHARTS: BEST PRACTICE Charts should use MS Graph. Note there are still printing issues when trying to print in greyscale. The best way to work with charts is: — Copy MS graph objects off the edge of the slide — Open charts by right-clicking on the MS Graph object and select:
Chart Object > Open — Make required edits — Copy the MS Graph object and paste as a picture :
Home > Clipboard > Paste > Paste Special > Picture (Enhanced metafile)
— Position the chart on the slide and ungroup (Ctrl + Shift + G). This enables printing in greyscale
DISCLAIMER A disclaimer is not usually required for screenshows. However, it may be required depending on the presentation's contents/use. Users should consult Legal/Compliance as required.
WPF UI testing in Deutsche Bank
WPFA
Амир Ромашкин, [email protected]
Автоматизированное тестирование
Короткие релизы
Сложные сценарии становятся легче
CI защищает от багов
Разработка и поддержка тестов
WPFA: внутренний продукт
• Рекомендован для WPF в Дойче Банке • Доказанная эффективность
• 2.5 года • 10 проектов • Десятки тысяч автотестов
• Активно развивается ü WPFA core Ø BDD via SpecFlow and ANTLR
.NET UI Automation
library QTP
Ranorex
White Coded UI
TestComplete
…
WPFA
Мир вокруг нас
.NET UI Automation: технология
• Microsoft (c)
• Различные технологии и платформы • MSDN и community
Но мы создали свою!
Test execution
.NET UI Automation: стандартное выполнение
Application process
Window
StackPanel
Border
TextBox
Label Window element
Label element
TextBox element
Real visual tree
Automation element tree
Access to visual elements
.NET UI Automation
Test runner process
WPFA: почти Snoop
Test method call interception Injection into application via
ManagedInjector.dll
Elements manipulations via InputSimulator.dll
Assertion Exceptions propagated back
Test runner process Application process
WPFA: простейшая концепция
• Пишем простой юнит-тест. • Выполняем его на UI потоке процесса приложения. • При помощи WPF работаем с визуальным деревом.
WPFA: реализация концепции
• PoC: github.com/amirkaromashkin/wpfa
• Перехватим вызов конструктора при помощи Proxy • Выполним DLL-injection в приложение как Snoop • Наладим изнутри приложения связь с NUnit • Будем маршаллировать вызовы методов в приложение • Внутри процесса мы - хозяева:
• Dispatcher.PushFrame поможет с ожиданием наступления событий.
• InputSimulator будет управлять мышкой и клавиатурой.
WPFA: полный доступ к приложению
" Тестирование не UI-ых элементов(ViewModel, HTTP запросы)
" Создание Mock-ов прямо в тестах (Взаимодействие с сервером, базой данных)
" Всегда актуальное визуальное дерево " Полная поддержка кастомных контролов " Дебаг и диагностика (RoutedEvents, DataContext) " Может неузнаваемо изменить приложение " ApplicationIdle зарезервирован " Модальные окна и другие PushFrame – отдельные
“приседания”
Заключение
• Полноценный WPFA нельзя вывести в open-source L • Концепция реализуется просто • Решение расширяемо при помощи других фреймворков • Полный контроль это круто!
Контакты • Email: [email protected] • PoC on GitHub : github.com/amirkaromashkin/wpfa
Возможные фичи
• Модальные окна • Отдельный поток слушает открывающиеся новые модальные окна • Предрегистрируем обработчик модального окна в тесте
• Мониторинг зависания приложения