在《面试|Appium的这些内容一定要了解》,分享了Appium环境搭建的服务端,接下来继续分享,留的一点小尾巴「测试设备」。 我们部门在刚开始成立时,测试设备非常匮乏,因为要等做完设备调研和选型之后,才能进行采购。 会涉及的硬件设备有:ROS、打印机、扫码枪、摄像头、广告电子屏、取餐叫号机等。 从这些设备可以看出,用户群体属于B端,主要是加盟商门店的工作人员,涉及的功能有:接收订单、查看订单详情、备餐、通知取餐、设置打印机、店员考勤打卡等。 这些功能的核心是ROS,它连接了打印机、扫码枪、摄像头等。 在《实战|Python+Appium实现多设备运行》,我有介绍打印机的选型标准,关于ROS的,我们后续再分享吧。 ROS装载的操作系统是安卓系统,说到模拟安卓系统,事情就简单啦,模拟器有很多,比如:MuMu、夜神、逍遥等。 我刚开始接触Appium时,用的是夜神,后来它不支持微信了,就换MuMu来用了。 关于它们的使用,就不赘述了,下载下来进行安装启动,和手机一样。 如果要安装第三方应用,把下载下来的APK文件,拖拽过去就可以了。 这些模拟器都是基于Android的某个特定版本进行改造的,比如MuMu的Android版本是6.0.1,它是网易基于安卓6出品的游戏专用模拟器。 如果想模拟多厂家、多版本、多屏幕和尺寸,且运行比较稳定,可以考虑:Genymotion和emulator
Genymotion是一套完整的工具,它提供了Android虚拟环境。它的运行需要依赖VirtualBox,所以安装之前需要先安装VirtualBox。 去网上下载Genymotion,安装完成后启动,点击右上角的+号按钮,进行新建模拟器。 选择一个设备,点击「Next」,弹出的确认界面会显示,即将创建的模拟器的配置,再次点击「Next」,Genymotion会将该模拟器对应的镜像下载下来并创建模拟器。 创建完成的模拟器,会展示在如下图所示的列表中,选择一个模拟器,点击「Start」进行启动。 在Genymotion模拟器中安装应用,和MuMu一样,只需要将应用的APK文件,拖拽过去就可以了。 新建模拟器有x86和ARM这两套指令集供选择,真机通常都是ARM的,因为ARM针对续航能力有优化,使得电池更耐用。 Genymotion模拟器,以及市场上大部分以快著称的Android模拟器基本上都是基于x86架构的,因为x86的性能会好一些,比如我们的电脑都是x86系统。 x86架构的模拟器,无法兼容ARM架构的APP,但市场上大部分APP,都是基于ARM架构,也就意味着x86模拟器无法兼容市场上大部分模拟器。 比如:微信,豌豆荚,如果拖拽其安装文件APK,到Genymotion模拟器,会报错: 那么,能不能让Genymotion运行ARM架构的APP呢? 答案是,可以安装一个ARM转换包,它可以让x86架构的模拟器运行ARM架构的APP。
从上述网盘地址,下载zip包,将其拖拽到Genymotion模拟器窗口上,在弹出对话框点击确定,重启模拟器即可解决。 此外,我们还可以使用Android SDK自带的emulator模拟器,自带的比较原汁原味,而且支持创建ARM架构系统的模拟器。 使用如下命令查看模拟器列表:
使用如下命令启动模拟器
上面要用命令行进行操作,比较费劲,我喜欢直接安装和使用Android Studio,方便创建和管理emulator模拟器。 总结一下,分享了3种模拟器:
真机运行稳定且快速,但若要对驱动真机进行自动化测试,得在真机开启USB调试模式,而且用USB线连接容易掉线,而模拟器不需要开启USB调试模式,也不存在掉线问题。 在《面试|Appium的这些内容一定要了解》,Android SDK的结构组成,在tools里面有很多工具,monkeyrunner、emulator、uiautomatoviewer等,adb也在其中。 为便于使用,我们会将tools和paltform-tools都配置成环境变量。 adb的全称为Android Debug Bridge,即安卓调试桥,可以实现PC机和手机端的通讯。 补充几个adb常用的命令,也是面试经常会提问的:
我们用以下命令查看设备的连接状态:
发现设备,出现offline状态,可通过以下命令重启服务: 连接设备所用的命令:
这里的[127.0.0.1]代表的是本机,[7555]是端口号, 各类模拟器的默认端口号: Genymotion模拟器 5555 注意:以上是Windows安装的模拟器所使用的默认端口号,有些在Mac是有区别的,比如mumu在Windows默认的端口号是7555,在Mac上是22471 随着移动端市场份额的日益增多,掌握移动端产品的测试,也是我们软件测试工程师必备的技能之一。 虽然有了模拟器,在实际的工作中,公司还是要采购真机来进行测试,甚至如果想进行完整的兼容性测试,可能还会购买第三方的测试服务。 模拟器只能模拟测试一些页面上布局、展示等,单纯的只用模拟器进行测试是不合理的。 我们测试一定要尽量贴合用户的行为和使用场景,模拟器做得再真实,是软件就会有bug,测试设备的钱是不能省的。 运行模拟器很耗费资源,配置比较低的机器,真是苦不堪言。 为了解决这个痛点,我们引入了Sonic云真机测试平台,后续将分享Sonic的搭建和使用。 |
|
来自: wenxuefeng360 > 《待分类1》