Appium daemonize appium 不能启动 ios simulator 问题

Shuang · 2015年08月19日 · 最后由 Shuang 回复于 2015年08月20日 · 2279 次阅读

我是在 Jenkins 上配置测试程序,不想手动 start appium server,并一直保持打开,想通过 Jenkins 上配置 appium server 在测试程序 build 前打开,测试完成后关闭。
如果在 pre-build step 中启动 appium,会有 “Process leaked file descriptors” 错误,appium 虽然会启动,但是在 build 过程结束后会被 Jenkins 强制关闭,等不到测试开始了。为了解决 “Process leaked file descriptors” 的问题,根据这里

https://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build

可以启动 appium 作为 daemon,build 结束后 appium 进程还会被保留,这时问题来了,daemonize 启动的 appium 在试图打开 ios simulator 时会遇到

[INST STDERR] Failed to authorize rights (0x1) with status: -60007
[INST STDERR]  instruments[21350:1878375] -[XRSimulatorDevice prepareConnection:]: Unable to authorize simulated daemon (21390)

错误,simulator 闪退,不能执行测试,请问万能的小伙伴,该如何解决 unable to authorize simulated daemon 的错误呢?或者如何正确配置 jenkins 让 appium 随测试程序启动和关闭?

谢谢大家!

更新:
之前是在一台 mac mini 上测试的,换了一台 macbook pro,同样的配置,appium server 给出不同的错误, 真机和 simulator 都是这个错误:

instruments[50821:6455469] Failed to start Instruments daemon on 'My iPhone (8.4.1)' (The service is invalid.)[39m
[36minfo[39m: [debug] [33m[INST STDERR] Instruments Usage Error : Timed out waiting for device to boot: "My iPhone (8.4.1)"[39m
[36minfo[39m: [debug] [90m[INSTSERVER] Instruments exited with code 255[39m
[36minfo[39m: [debug] Killall instruments
[36minfo[39m: [debug] Instruments crashed on startup

共收到 6 条回复 时间 点赞

麻烦添加头像~

另外,这种情况比较通用的解决方法应该是类似 mysql 那样把 server 做成一个 service ,通过命令控制 service 的开关。

这种还是建议放在 beforesuite 或者 beforemethod 里面处理,便于控制,不要依赖于 jenkins,这样更有通用性

#1 楼 @chenhengjie123 有头像啊,看不到吗

#2 楼 @chenhengjie123 你说的意思是在程序里 run command 控制 appium 的开关吗,像这个:https://github.com/Genium-Framework/Appium-Support

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册