Appium Appium IOS 测试,每次和 Instruments 交互都会有 1s 的延迟

fanfaneve · 2015年04月27日 · 最后由 fanfaneve 回复于 2015年04月27日 · 1763 次阅读

上周发了个帖子抱怨 appium IOS 测试,跑 python 脚本跑的很慢,每按一个按键都要等 1-2s 才会按下一个按键。打开--log-timestamp 后发现 Instruments 接收命令有 1s 的延迟。
eg:

2015-04-24 02:49:52:350 - info: [debug] Sending command to instruments: au.getElementByName('IntegerA')
2015-04-24 02:49:53:329 - info: [debug] [INST] 2015-04-24 02:49:54 +0000 Debug: Got new command 3 from instruments: au.getElementByName('IntegerA')

原来 instrument 内部有 1s delay,但是 appium 已经加上了 patch,默认是不再会有 delay 的。
目前已经尝试了好几种方法,都没办法去掉 delay。尝试过的方法如下:
1.在 python 脚本中添加 capbility 的属性:desired_caps['nativeInstrumentsLib'] = False
2.编译了 https://github.com/facebook/instruments-without-delay 里的 instruments,替换原来的 instruments。

我的系统环境是:
Mac 系统 10.10.3
Xcode:6.3.1
appium:1.3.7

请教各位大神,有什么方法能去掉这个 delay 吗?

共收到 5 条回复 时间 点赞

你在添加 nativeInstrumentsLib 这种方法中有看到这样的 log 吗:

info: [debug] Creating instruments
info: On some xcode 6 platforms, instruments-without-delay does not work. If you experience this, you will need to re-run appium with the --native-instruments-lib flag
info: [debug] Preparing uiauto bootstrap

XCode 6 以上需要用最新的 instruments-without-delay ,估计 appium 1.3.7 还没更新到最新的 instruments-without-delay
另外,如果你要使用你自己编译的 instruments ,估计要传 desired_caps['nativeInstrumentsLib'] = True 来让 appium 使用你自己的 instruments 。

对于在 appium 中去掉 delay ,目前 instruments-without-delay 应该是唯一办法。

1 楼 @chenhengjie123
这条 log 是有的,你说的这种方法我也试过了,没有效果,而且编译出来的 instruments 只有 300 多 byte,原来的有 14k。
编译完后还有下面的错误。估计不支持最新的 simulator,毕竟 github 上的也是好几个月前更新的了。

instruments[1132:35871] WebKit Threading Violation - initial use of WebKit from a secondary thread.
Instruments Usage Error : Ambiguous device name/identifier 'iPhone 5s (8.':
iPhone 5s (8.3 Simulator) [D4ED661F-56EB-491B-8776-4C0D9E33BB49]
iPhone 5s (8.1 Simulator) [11CA4F0F-F9FD-4D7E-AF96-E254E0D7C94D]

log 和代码请使用代码块。
为了论坛的排版统一,请先更新一下排版,然后我再继续回答你的问题。谢谢。

从你的 log 看,你的 device name 有错误,所以识别不到你想用哪个设备。你把 desired_caps 的内容都贴出来看看?

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