2016-02-02 4 views
1

Мне нужно автоматизировать процесс установки какого-либо продукта, но он должен быть точно установлен через прохождение InstallAnywhere wizard (это было простое тестирование процесса установки GUI, поэтому установка молчания не будет работать). Любое предложение, как это сделать?Автоматическое тестирование мастера InstallAnywhere

Я предполагаю, что основная проблема заключается в том, что установочный файл (* .exe) - это просто экстрактор, который извлекает необходимые файлы в папку temp, а затем запускает java-приложение.

+0

На каком языке вы предпочитаете писать тесты? Только Java? Или, может быть, Python приемлем? –

+0

Java предпочтительнее, но если у вас есть хорошее решение с Python, я бы хотел посмотреть на это и рассмотреть. – marvellous

+0

У нас есть пример автоматизации тестирования графического интерфейса установщика: http://stackoverflow.com/questions/32846550/python-control-window-with-pywinauto-while-the-window-is-minimized-or-hidden Но для части Java Установщик это не сработает, я думаю. Но у нас есть экспериментальное решение (будет выпущено в марте), которое может работать. Итак, что такое раннее тестирование? –

ответ

0

Вы можете попробовать pywinauto, чтобы проверить его на Windows. Для Java-части установщика может потребоваться новый «UIA» back-end, который будет выпущен в марте. Для начала тестирования вы можете попробовать следующие шаги:

  1. Установите pyWin32 и comtypes по pip install pypiwin32 и pip install comtypes.
  2. Установить UIA branch of pywinauto на python setup.py install.

Попробуйте следующий код:

import pywinauto 
pywinauto.backend.activate('uia') 

app = pywinauto.Application().start('your_installer_path.exe') 
app.ApproximateMainWindowName.Wait('ready', timeout=15) 
app.ApproximateMainWindowName.PrintControlIdentifiers() 

PrintControlIdentifiers выход намек на дальнейшие шаги. Возможны имена доступа для элементов управления в окне. Только базовые функции, такие как ClickInput() и TypeKeys('something'), должны работать.

Доступные методы контроля можно посоветовать здесь:

app.MainWindow.OKButton.WrapperObject(). # methods list can be displayed here in IDLE or Visual Studio Python Tools 
app.MainWindow.OKButton.WrapperObject().ClickInput() # code for debugging 
#app.MainWindow.OKButton.ClickInput() # it works the same way, for production code 

Не стесняйтесь просить больше помощи, если что-то не работает.

Для сценариев Python может потребоваться запуск в качестве администратора для доступа к графическому интерфейсу. Или добавьте манифест для python.exe с uiAccess="true".

+0

Я пробовал и, похоже, не работает с java-приложением. Окно запуска (InstallAnywhere extracter) может работать, но фактическая часть мастера не может быть обработана и не выполняется с тайм-аутом при ожидании. – marvellous

+0

Если честно, я не знаю, как это работает, но похоже, что существует связь между объектом приложения и exe-файлом, если проблема здесь, вероятно, здесь, потому что приложение java не запускается из этого exe-файла. – marvellous

+0

Я пытался подключиться по идентификатору процесса, и это не очень помогает. Мастер был найден по названию, по крайней мере, никаких элементов управления не доступно внутри. – marvellous

Смежные вопросы