Java InstallAnywhere向导的自动测试

Java InstallAnywhere向导的自动测试,java,automation,automated-tests,installanywhere,Java,Automation,Automated Tests,Installanywhere,我需要自动化一些产品的安装过程,但它必须通过InstallAnywhere向导(这有点像是安装过程的GUI测试,所以静默安装不起作用)。 有什么建议吗 我想主要的问题是安装文件(*.exe)只是一个提取器,它将所需文件提取到临时文件夹,然后运行java应用程序 您可以尝试在Windows上测试它。安装程序的Java部分可能需要新的“UIA”后端,该后端将于3月份发布。对于早期测试,您可以尝试以下步骤: 安装并通过pip安装pypiwin32和pip安装comtypes 通过python setu

我需要自动化一些产品的安装过程,但它必须通过
InstallAnywhere向导
(这有点像是安装过程的GUI测试,所以静默安装不起作用)。 有什么建议吗

我想主要的问题是安装文件(*.exe)只是一个提取器,它将所需文件提取到临时文件夹,然后运行java应用程序

您可以尝试在Windows上测试它。安装程序的Java部分可能需要新的“UIA”后端,该后端将于3月份发布。对于早期测试,您可以尝试以下步骤:

  • 安装并通过
    pip安装pypiwin32
    pip安装comtypes
  • 通过
    python setup.py安装安装
  • 请尝试以下代码:

    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脚本可能需要以管理员身份运行才能访问GUI。或者使用
    uiAccess=“true”
    为python.exe添加清单,您可以尝试在Windows上测试它。安装程序的Java部分可能需要新的“UIA”后端,该后端将于3月份发布。对于早期测试,您可以尝试以下步骤:

  • 安装并通过
    pip安装pypiwin32
    pip安装comtypes
  • 通过
    python setup.py安装安装
  • 请尝试以下代码:

    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脚本可能需要以管理员身份运行才能访问GUI。或者使用
    uiAccess=“true”

    为python.exe添加清单,您更喜欢哪种语言编写测试?只有Java?也许Python是可以接受的,java是首选,但是如果你对Python有好的决定,我想看看这个,然后考虑一下。我们有一个安装程序GUI测试自动化的例子:但是对于安装程序的java部分,我想它不会起作用。但我们有一个实验性的解决方案(将于3月发布),可能会奏效。那么早期测试是什么呢?因为我没有选择,所以我会尝试。还有一个细节:您是否计划以跨平台的方式测试您的安装程序?还是只使用一个操作系统?您更喜欢哪种语言编写测试?只有Java?也许Python是可以接受的,java是首选,但是如果你对Python有好的决定,我想看看这个,然后考虑一下。我们有一个安装程序GUI测试自动化的例子:但是对于安装程序的java部分,我想它不会起作用。但我们有一个实验性的解决方案(将于3月发布),可能会奏效。那么早期测试是什么呢?因为我没有选择,所以我会尝试。还有一个细节:您是否计划以跨平台的方式测试您的安装程序?还是只有一个操作系统?我已经试过了,但它似乎不适用于java应用程序。可以使用开始窗口(InstallAnywhere提取器),但实际的向导部分无法处理,并且在等待超时时失败。老实说,我不知道它是如何工作的,但似乎应用程序对象和exe文件之间存在链接,如果是这样,问题可能就在这里,因为java应用程序不是从这个exe文件运行的。我试图通过进程id进行连接,但没有多大帮助。向导至少是按标题找到的,但里面没有可用的控件。嗯。。。我不确定,但如果有帮助呢?我还没有深入研究Java可访问性。最好的方案是“安装或运行Java访问桥并享受”,最坏的情况可能需要为pywinauto实现新的后端。恐怕第二个很有可能。我已经试过了,看起来它在java应用程序中不起作用。可以使用开始窗口(InstallAnywhere提取器),但实际的向导部分无法处理,并且在等待超时时失败。老实说,我不知道它是如何工作的,但似乎应用程序对象和exe文件之间存在链接,如果是这样,问题可能就在这里,因为java应用程序不是从这个exe文件运行的。我试图通过进程id进行连接,但没有多大帮助。向导至少是按标题找到的,但里面没有可用的控件。嗯。。。我不确定,但如果有帮助呢?我还没有深入研究Java可访问性。最好的方案是“安装或运行Java访问桥并享受”,最坏的情况可能需要为pywinauto实现新的后端。恐怕第二种可能性最大。