如何使用Jenkins中的Autoit打开GUI程序

时间:2017-05-12 14:17:29

标签: windows user-interface jenkins command-line autoit

我需要自动化在Windows中运行的Windows GUI程序。为此,我在AWS上设置了一台Windows 2012 R2计算机,我在其上安装了Autoit,我编写了启动GUI程序的脚本,并在其上执行操作(让我们称之为 auto.au3 )。

我从Windows命令行运行此脚本将参数传递给它,它完美地运行。问题是我需要从Jenkins启动它,当我通过作业调用auto.au3时,脚本似乎无法打开GUI程序。

我在Windows上将Jenkins配置为奴隶(所以我从我的“主”Jenkins中调用它),启用“允许服务与桌面交互”,我将自动安装目录添加为Jenkins的PATH环境变量,我写道Jenkins中的批处理命令(直接在Windows上运行)。看起来像这样(%domain%是jenkins构建参数):

SET PATH=%PATH%;%AUTOIT_PATH%

AutoIt3 C:\Users\Administrator\Desktop\auto.au3 param1 "%domain%"

auto.au3的第一步是:

Run("C:\Program Files (x86)\GUIprogram.exe")

从Windows执行时工作正常但从Jenkins启动时无法打开程序并且作业卡住了。

我还尝试创建一个运行auto.au3脚本的python脚本来检查错误是否在PATH环境变量中,但我检查了python是否运行良好,直到它运行auto.au3,然后它也卡在了第一步。再次,只有当我从詹金斯调用它时才会发生。如果我执行它登录在机器上并直接运行批处理命令,它就可以工作。

是否有一些限制可以避免通过Jenkins启动GUI程序?我错过了一些允许它的配置吗?

非常感谢!

- EDIT ------

我启动了应用程序并删除了“启动应用程序”代码行,但它仍然没有做任何事情。似乎auto.au3根本没有做任何事情。

1 个答案:

答案 0 :(得分:0)

好的,经过多次调查后,我发现这个问题与奴隶詹金斯的推出方式有关。我在此stackoverflow问题响应中找到了解决方案:https://stackoverflow.com/a/21409578/4269527

这个问题并没有真正相关,但Jason Swager的回答解决了这个问题。