Как писать автоматические тесты для десктопных приложений?

У меня есть достаточно большое десктопное приложение, которое представляет из себя коллекцию формочек с набором контролов. У меня есть коллекция базовых сценариев, из раздела «нажать на кнопку А, появится окошко Б, в нём ввести 123 и нажать ОК, если после этого не появилось окошко С, значит регресс-тест провалился». Сейчас это делается вручную. А как можно этот процесс автоматизировать? Какими средствами, приложениями, фреймворками? Как сделать так, чтобы не человек кликал, а компьютер сам кликал и в лог писал, если программа повела себя не так, как записано в сценарии?
  • Вопрос задан
  • 6728 просмотров
Пригласить эксперта
Ответы на вопрос 7
TomasHuk
@TomasHuk
Тесты можно сделать с помощью скриптов на Autoit. Он поддерживает нажатия на контролы, манипуляции курсором мыши, ввод текста/чисел в поля, отслеживает появления окон, может писать информацию в логи и еще многое чего. Язык в принципе не сложный, если разберетесь — может здорово пригодиться.
Ответ написан
Комментировать
pletinsky
@pletinsky
Если для виндовса пишите — то на мой взгляд лучшее решение Microsoft UI Automation Framework. Он все может делать. Autoit за ним не особенно поспевает. У него есть .net интерфейс доступа.
Для различиных языков программирования для него есть обертки. Очень много зависит от того, на чем пишите.
Ответ написан
creage
@creage
Еще есть Autohotkey — довольно продвинутая. У меня друг на ней ботов пишет )

Для enterprise уровня можете посмотреть на CodedUI. Там и интеграция в TFS, MSBuild со всеми вытекающими.
Ответ написан
Комментировать
Killy
@Killy
Поскольку в профиле обнаружил Python, всё-таки решил предложить попробовать Sikuli.
Данное решение имеет некоторые ограничения, по сравнению с упомянутыми AutoIt и AutoHotKey. В первую очередь это связано с переносимостью скриптов.
Зато есть некоторые встроенные плюшки для тестирования.
Ответ написан
Комментировать
RUVATA
@RUVATA
Разработчик, гик, меломан, разгильдяй
Какой язык?… возможно тесты можно реализовать, прямо внутри вашего приложения
Ответ написан
@3dm
Обратите внимание также на SilkTest и TestComplete.
Ответ написан
vasily-v-ryabov
@vasily-v-ryabov
Python, UI Automation, pywinauto
Если PyQt, то на Windows теперь с ним может неплохо справляться pywinauto (начиная с ноября 2016), если использовать "uia" backend (о бэкендах подробнее в Getting Started Guide), который упрощает работу с технологией MS UI Automation. Знаю уже несколько человек, так автоматизировавших Qt приложения. Вопросы можно задавать на гитхабе или в Gitter чате есть русскоязычная комната.

Если PyQt на линуксе, то здесь новый бэкенд можно ожидать следующей зимой-весной.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы