与Airtest自动化搭配使用模拟器
模拟器是我们的测试小伙伴非常喜欢的一款工具。在使用 airtest
框架做自动化测试的时候,小伙伴们也是非常喜欢用模拟器来作为测试设备的,但是我们也收到过很多关于连接模拟器的问题:
① airtest
连不上xx模拟器怎么办
② xx模拟器连上了但是好卡啊
③ 哪款模拟器好用,有没有推荐的呀
......
别急,今天我们就用AirtestIDE来连接下5家主流的模拟器,看看这几款模拟器,到底谁好用一些。
准备工作
① 进入开发者模式,打开USB调试
不论连接什么品牌的模拟器,我们都需要先把它的 USB模式
打开,才能够连的上。
开启方式:在设置中滑到最后,找到关于平板电脑,点击进去找到版本号,然后连续点击版本号直到提示:您已处于开发者模式。此时返回上一层菜单,可以看到多了一个开发者选项,点击进去,再把 USB调试 这个选项打开即可。
② 在模拟器中手动安装上Yosemite
很多情况下,airtest
连接模拟器时,并不会像连接真机设备那样,自动安装上 Yosemite
。所以我们在此建议,连接模拟器之前,最好先手动把 Yosemite
安装上,可以有效避免下述错误:
Yosemite
的安装包可以在解压好的AirtestIDE文件夹里面找到:
1.雷电模拟器
① 本次测试所用产品版本:
- 雷电模拟器:3.94.0(最新)
- AirtestIDE:1.2.3(最新)
② 雷电模拟器的端口号是5554,在IDE的设备连接窗口上连接雷电模拟器的步骤如图:
注意:雷电模拟器不需要勾选备选的连接参数就可以连接上AirtestIDE
③ 如果刷出了多台端口号为5554的雷电模拟器设备,选择 ADB Status
为 device
的那台,即 emulator-5554
。
④ 在 auto_setup
接口中连接雷电模拟器
auto_setup(__file__,devices=["Android://127.0.0.1:5037/emulator-5554"])
复制代码
2.mumu模拟器
① 本次测试所用产品版本:
- mumu模拟器:2.3.10(最新)
- AirtestIDE:1.2.3(最新)
② mumu模拟器的端口号是7555,在IDE的设备连接窗口上连接mumu模拟器的步骤如图:
注意:mumu模拟器不需要勾选备选的连接参数就可以连接上AirtestIDE
③ 在 auto_setup
接口中连接mumu模拟器
auto_setup(__file__,devices=["Android://127.0.0.1:5037/127.0.0.1:7555"])
复制代码
3.夜神模拟器
① 本次测试所用产品版本:
- 夜神模拟器:V6.6.0.8005(最新)
- AirtestIDE:1.2.3(最新)
② 夜神模拟器的端口号是62001,在IDE的设备连接窗口上连接夜神模拟器的步骤如图:
③ 在IDE上连接夜神,需要在点击connect之前勾选上备选连接参数 use javacap
,否则连接会报错或者模拟器出现黑屏:
④ 在 auto_setup
接口中连接夜神模拟器
auto_setup(__file__,devices=["Android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP"])
复制代码
4.逍遥模拟器
① 本次测试所用产品版本:
- 逍遥模拟器:7.2.1(最新)
- AirtestIDE:1.2.3(最新)
② 逍遥模拟器的端口号是21503,在IDE的设备连接窗口上连接逍遥模拟器的步骤如图:
③ 在IDE上连接逍遥模拟器,需要在点击connect之前勾选上备选的连接参数 use javacap
和 use ADB orientation
,俩者缺一不可,否则会出现如下报错:
④ 在 auto_setup
接口中连接逍遥模拟器
auto_setup(__file__,devices=["Android://127.0.0.1:5037/127.0.0.1:21503?cap_method=JAVACAP&&ori_method=ADBORI"])
复制代码
5.天天模拟器
① 本次测试所用产品版本:
- 天天模拟器:3.2.8(最新)
- AirtestIDE:1.2.3(最新)
② 天天模拟器的端口号是6555,在IDE的设备连接窗口上连接天天模拟器的步骤如图:
③ 在IDE上连接天天模拟器,需要在点击connect之前勾选上备选的连接参数 use javacap
否则模拟器会出现黑屏:
④ 在 auto_setup
接口中连接天天模拟器
auto_setup(__file__,devices=["Android://127.0.0.1:5037/127.0.0.1:6555?cap_method=JAVACAP"])
复制代码
小结
① 跑同一脚本5次时的各项表现(该脚本运运行时长约5min):
序号 | 模拟器 | CPU使用率 | 内存使用率 | 平均运行时长 | 备注 |
1 | 雷电 | 75%-85% | 44% | 263.676s | 0次运行失败 |
2 | mumu | 75%-85% | 45% | 242.742s | 0次运行失败 |
3 | 夜神 | 65%-75% | 43% | 230.199s | 1次卡死 |
4 | 逍遥 | 80%-85% | 47% | 214.351s | 0次运行失败 |
5 | 天天 | 65%-75% | 46% | 250.368s | 0次运行失败 |
注:模拟器性能配置均设为最高级,设备型号基本一致。
另外在不同的硬件设备上测试结果可能存在误差。
② 模拟器勾选备选参数及常见问题
序号 | 模拟器 | 端口号 | 备选连接参数 | 常见问题 |
1 | 雷电 | 5554 | 无 | 刷出多台端口号为5554的设备 |
2 | mumu | 7555 | 无 | 暂未发现 |
3 | 夜神 | 62001 | use javacap | 不勾选javacap会黑屏、卡死 |
4 | 逍遥 | 21503 | use javacap、use ADB orientation | 不勾选会报AdbShellError |
5 | 天天 | 6555 | use javacap | 不勾选javacap会黑屏 |
③ 结论
1)逍遥模拟器运行脚本的速度相对其它模拟器快一些;
2)夜神模拟器相对其他模拟器卡死的概率高一些;
3)不用勾选任何连接参数就可以连上的模拟器有雷电和Mumu;
4)模拟器出现连接问题优先检查是否装上Yosemite,再通过勾选连接参数来尝试解决
5)本次测试基于特定版本的IDE和模拟器,童鞋们可以优先使用测试通过的版本避免出现更多连接错误。