解决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服务属性里,有一个“允许服务与桌面交互”的选项。

图1
图2

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

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

图3

图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文件执行时,会调起交互式界面。

大功告成!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。