我需要自动化在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根本没有做任何事情。
答案 0 :(得分:0)
好的,经过多次调查后,我发现这个问题与奴隶詹金斯的推出方式有关。我在此stackoverflow问题响应中找到了解决方案:https://stackoverflow.com/a/21409578/4269527
这个问题并没有真正相关,但Jason Swager的回答解决了这个问题。