解决Windows Slave调起exe时无交互界面显示的问题

      首先我们在Jenkins windows节点(slave)上跑windows batch command是调用*.exe文件时会出现“Process leaked file descriptors. Seehttps://jenkins.io/redirect/troubleshooting/process-leaked-file-descriptorsfor more information”问题。

      感谢谷歌上提供的一些方案解决了process leak的问题。(https://blog.csdn.net/wangbin0016/article/details/41948171)

      然后又发现,Jenkins工程起来后,exe文件也被调起来在跑了,但是exe会去调起一些交互式界面窗口,实际窗口没有被调起。

尝试如下解决方案,Jenkins slave的windows服务属性里,有一个“允许服务与桌面交互”的选项。

解决Windows Slave调起exe时无交互界面显示的问题_第1张图片
图1
解决Windows Slave调起exe时无交互界面显示的问题_第2张图片
图2

勾选了此选项后,交互界面是在一个新的桌面里呈现,而且一直会有一个java的cmd窗口,无法关闭。那么我们的自动化界面测试会去截取交互界面的截图,并对比结果,如果存在其他的窗口会使自动化测试用例失败。

所以得解决这个问题。于是用了如下的解决方案,你计划任务的方式来吊起jenkins slave agent。

解决Windows Slave调起exe时无交互界面显示的问题_第3张图片
图3

解决Windows Slave调起exe时无交互界面显示的问题_第4张图片
图4

批处理文件内容如下例子:

"C:\Program Files\Java\jdk1.8.0_162\bin\java.exe" -jar "C:\Users\Administrator\Downloads\agent.jar" -jnlpUrl http://10.5.139.103:8888/jenkins/computer/10.5.139.110(Test)/slave-agent.jnlp -secret 1471e29b6be7207xxxx -workDir "D:\jenkins"

这样,再跑jenkins 工程时,exe文件执行时,会调起交互式界面。

大功告成!

你可能感兴趣的:(解决Windows Slave调起exe时无交互界面显示的问题)