Войти

Показать полную графическую версию : Помогите разобраться и выбрать средство автоматизации.


e_consul
16-11-2016, 22:01
Встала задача по автоматизации Windows десктоп-приложения с графическим интерфейсом. Задача была решена с помощью автокликера Clickermann, потому что он первый подвернулся под руку. В процессе появилось и укрепилось ощущение, что должно быть что-то более мощное и совершенное. В будущем возможны подобные задачи. Мне не нравится текущая реализация, но я пока не понимаю, что выбрать из имеющихся альтернатив. Есть AutoIT, есть скриптовые языки, есть Python и C#. Куча документации по каждому из них. Не нахожу главного на этом этапе - их предназначения и специализации. Я понимаю, что языки программирования мощнее и шире, но меня интересует аспект общения с GUI. Не могу выбрать, на что смотреть пристальнее. Я просмотрел темы по автоматизации здесь и на нескольких форумах тестировщиков. К сожалению, вынужден просить помощи.

Iska
17-11-2016, 01:17
e_consul, «общение с GUI» не является задачей автоматизации, это лишь попытка облегчить себе жизнь. Всё богатство выбора сводится, в основном, к AutoIt/AutoHotKey в традиционном случае.

e_consul
17-11-2016, 05:48
Конечно, я понимаю. Это лишь частный случай. Но мне надо выполнять эти "рутинные" операции от 100к до 1000к раз ) Желательно, с контролем выполнения на всех этапах, т.к. время затрачиваемое на них не всегда одинаковое.

gannet
17-11-2016, 06:35
Желательно, с контролем выполнения на всех этапах » У AutoIt есть условия, циклы, ожидание окна с нужным заголовком\текстом (WinWait|Active), чтение текста контрола (ControlGetText), равно как и фокус на него (плюс к тому есть "прицел" - помогает определить свойства этого контрола на этапе написания скрипта), да и взаимодествие с пользователем, если на каком-то этапе | при каком-то условии необходимо - возможно :up

e_consul
17-11-2016, 06:49
Большое спасибо за ответы, а в чем преимущество AutoIT перед Python или другими ЯП с их библиотеками и средствами тестирования? Они, конечно, изначально для других целей, но так тоже могут использоваться.
И еще один "глупый" вопрос. AutoIT не является ли надстройкой или оберткой над скриптовыми средствами Windows? Можно ли реализовать в скриптах тоже самое? Если нет, то чего скрипты не умеют, что умеет AutoIT?

gannet
17-11-2016, 07:45
e_consul, AutoIt:
предназначен для автоматизации операций с GUI (в основном)
прост в освоении vbs:Dim User32
Set User32 = XNHost.LoadDll( "user32.dll" )

Dim hWnd
hWnd = User32.GetForegroundWindow

Dim Caption
Set Caption = XNHost.Struct
Caption.Add "buffer" , "t", 1024

User32.GetWindowText hWnd, Caption, 1023

MsgBox Caption.buffer,0, "Foreground Window Caption"
autoit:$sText = WinGetTitle("[ACTIVE]")
MsgBox(0, "Полное название/заголовок активного окна", $sText)
компилируемый (не требует от среды выполнения ничего, кроме Windows, ессно)
прочее (https://ru.wikipedia.org/wiki/AutoIt)

С питоном сталкивался мало (пара скриптов, не связанных с GUI), но похоже там также есть автоматизация GUI (https://habrahabr.ru/company/intel/blog/266459/)

e_consul
18-11-2016, 19:18
Спасибо. Будет необходимость - покопаю )
Просто, в форуме про AutoIT - обсуждают его, что логично, но не дает возможности сравнивать и выбирать.
В других форумах тоже самое.
Вот например, ковыряю QT приложение стороннего производителя. API нет, документации нет, исходников нет. Надо нажимать на кнопки раз за разом, очень долго, чтобы выполнять запросы. Первым подвернулся кликер, сейчас бы я за него не взялся. Гораздо продвинутей есть инструменты. Вот и тыкаюсь в поисках, с прицелом на подобные задачи.

Iska
19-11-2016, 03:49
ковыряю QT приложение »
С QT будут проблемы.

e_consul
19-11-2016, 09:24
С QT будут проблемы. »
Какие?

Iska
19-11-2016, 09:29
Работа с элементами управления.

gannet
19-11-2016, 10:01
e_consul, Так бы сразу и сказали, что QT, ибо AutoIt заточен под WinAPI/WinForms. Насколько понял при первичном изучении (а теперь еще и вспомнил:)), у WPF и QT есть функция UI Automation, но она должна быть включена разработчиком, и тогда хоть powershell ( http://blog.qapl.ru/4-ways-to-automate-qt/). А вообще, вам, наверное, лучше на специализированные форумы обратиться, и, извините за глупый вопрос, но у вашего приложения точно нет api для взаимодействия без gui?
P.S. Далее я вам не советчик, ибо знаком только по курсу Технологии программирования в университете)

e_consul
19-11-2016, 10:01
Ну, примерно это я и читал. Средства для работы с ними посоветуете?

у вашего приложения точно нет api для взаимодействия без gui? »
Точно, если не прятали ) А спрятанный я не знаю как искать )




© OSzone.net 2001-2012