问答 如何用 appium 同时操作多个 iOS 模拟器执行不同的测试 case

沙子 · May 04, 2017 · Last by 沙子 replied at May 08, 2017 · 2576 hits

目的

实现启动多个appium服务,同时在不同的模拟器上执行多个不同的测试case

遇到的问题

问题一

用一个xcode启动多个模拟器
正常启动一个模拟器后,命令再启动另外一个模拟器

cd /Applications/Xcode.app/Contents/Developer/Applications/
open -n Simulator.app/

启动后,通过Hardware-Device 选择一个其他不同的版本或者型号,同样的方法启动了多个模拟器;

然后启动多个appium不同端口的server,因为模拟器不能指定udid去执行,所以单通过端口号,deviceName区别设备,执行不同测试case时模拟器不能区别不同的模拟器。
查了查原因:Appium底层是通过UIAutomation的instrument来驱动运行的,通过instrument启动运行,默认会启动当前使用的Xcode版本安装的最新版本的SDK;就是说同一个xcode启动的模拟器appium认的都是一个。

问题二

通过安装不同版本的xcode启动多个模拟器测试,但是这样需要不停切换系统使用的xcode版本来启动不同的模拟器,执行case也是串行的,也不能实现同时执行多个不同的case在不同的模拟器上。

求助,有没有同学遇到这样的情况,在不同的iOS模拟器上并行执行不同的case,我的问题现在是卡在如何去处理多个可用模拟器。
有看到Bluepill的文章,Bluepill用的不是appium,不知道测试中好不好使,做最后考虑使用。

共收到 2 条回复 时间 点赞

UIAutomation 已经被淘汰了吧,XCode 8 开始就不支持了。现在应该用 UI Testing Bundle 了。

至于 UIAutomation 的多模拟器并行,以前在 GTAC 的视频看到过 Uber 有类似的演示,有没有说具体技术细节不是很记得。要做到模拟器同时多开,需要用到一个很重要的工具:FBSimulatorControl

沙子 #2 · May 08, 2017 作者
陈恒捷 回复

FBSimulatorControl这个也是要Xcode8.3.2的 我再找找看

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up