有兄弟團隊用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的屬性裡面辨別允許與桌面互動,實際操作不現實,因為每當排程的時候,會跳出一個對話框,讓目前使用者授權,無法完全自動化。