天天看点

Jenkins部署Windows UI自动化的调度权限问题

有兄弟团队用jenkins做任务调度,对windows上的应用通过sikuli测试,发现sikuli的 app.open 无法加载应用,问我是啥原因。

对于jenkins和sikuli,我都是新手,通过网上的各种查找,终于找到原因和解决方案。

问题的原因挺简单的。这是windows的一个安全机制导致。jenkins把windows作为一个node,部署了一个windows service在里面。平时,如果跑跑没有ui的调度还可以,当有ui交互出现时,service跑在session 0,问题就来了。

解决方法有两个,

1. 比较笨拙的方法,那就是用psexec来解决,具体可以参见 http://stackoverflow.com/questions/22602951/open-excel-on-jenkins-ci/22610664#22610664

2. 另一种推荐的方法,就是不要让jenkins作为一个service,而是作为java web start,通过java -jar jenkins.jar在windows上启动,就ok了。

另,网上说,只要在service的属性里面标识允许与桌面互动,实际操作不现实,因为每当调度的时候,会跳出一个对话框,让当前用户授权,无法完全自动化。