Хотя и не идеально, лучшее, что я нашел для этого, это AutoIt http://www.autoitscript.com/autoit3
"AutoIt v3 - это бесплатный BASIC-подобный язык сценариев, разработанный для автоматизации графического интерфейса Windows и общих сценариев. Он использует комбинацию смоделированных нажатий клавиш, движения мыши и манипуляций с окнами / элементами управления для автоматизации задач таким образом, который невозможен или надежно работает с другими языками (например, VBScript и SendKeys). AutoIt также очень маленький, самодостаточный и будет работать на всех версиях Windows "из коробки" без назойливого "времени выполнения"! "
Это хорошо работает, когда у вас есть доступ к исходному коду управляемого приложения, поскольку вы можете использовать идентификационный номер ресурса для элементов управления, которые вы хотите использовать. Таким образом, вам не нужно беспокоиться о симулированных щелчках мышью по определенным пикселям. К сожалению, в устаревшем приложении вы можете обнаружить, что идентификатор ресурса не уникален, что может вызвать проблемы. Тем не мение. очень просто изменить идентификаторы на уникальные и перестроить.
Другая проблема заключается в том, что вы столкнетесь с проблемами синхронизации. У меня нет проверенного и верного решения этих проблем. Я использовал метод проб и ошибок, но он явно не масштабируется. Проблема заключается в том, что сценарий AutoIT должен ждать, пока тестовое приложение ответит на команду, прежде чем сценарий выполнит следующую команду или проверит правильность ответа. Иногда нелегко найти удобное событие, чтобы ждать и смотреть.
Мне кажется, что при разработке нового приложения я бы настаивал на последовательном способе подать сигнал "ГОТОВ". Это было бы полезно как пользователям, так и тестовым сценариям! Это может быть проблемой для унаследованного приложения, но, возможно, вы можете представить его в проблемных точках и постепенно распространить его на все приложение по мере продолжения обслуживания.