04如何连接Android真机以及模拟器

同学们好,我是网易AirtestProject的团队成员晓娟,欢迎大家来到我们的视频教程专栏《14天Airtest自动化测试小白课程》。

今天我们将带大家学习一下自动化测试的第一个步骤:连接测试设备。这节课我们主要讲一下Android真机和Android模拟器的连接方法。

连接Android真机

我们先来看一下Android真机的连接方式:

① 连接准备

在连接之前,我们要确保完成了以下几步操作:

用USB线连接电脑和待测设备,安装手机对应品牌的官方驱动,确保能使用电脑对手机进行USB调试打开手机中的"开发者选项",并且确保打开了"开发者选项"内的"USB调试" 选项此时手机上会出现 “允许USB调试” 的弹窗,点击 “确定”部分手机需要打开"允许模拟位置"、"允许通过USB安装应用"的设置关闭电脑上已经安装的手机助手软件,能避免绝大多数问题,请务必在任务管理器中手工结束手机助手进程

做好这几步操作之后,我们打开电脑中安装好的IDE,在移动设备连接窗口点击 “刷新ADB” ,稍等一下,窗口就会出现我们用USB线连接的Android设备,再点击 “connect” 按钮即可一键连接设备。成功连接后,我们可以看到清晰完整的手机影像,还能用鼠标操控我们的设备。

② 常见问题

大多数的Android手机做完上述的几步操作之后,都能正常连接上IDE。但是如果你做完上述操作之后,发现连接失败,也不用着急,首先 检查下你所使用的IDE是不是最新版本 ,把IDE更新到最新版本能解决很多因系统不兼容而连不上的问题。

其次,部分品牌的手机除了常规的设置以外,还需要完成一些相对特殊的设置,这部分的内容我们可以到官网教程的“Android连接常见问题”这个小节去找(扫描二维码可以直接进入,链接:https://airtest.doc.io.netease.com/IDEdocs/device_connection/2_android_faq/)

https://airtest.doc.io.netease.com/IDEdocs/device_connection/2_android_faq/ (二维码自动识别)

确定手机设置没有问题之后,我们还可以再次确认下ADB是否能够正常连接到手机:

Windows系统:进入AirtestIDE文件夹,在 AirtestIDE/airtest/core/android/static/adb/windows 目录下按住shift+鼠标右键打开命令行终端,输入 adb.exe devices。Mac系统:在终端命令行中,cd到 Application/AirtestIDE.app/Contents/MacOS/airtest/core/android/static/adb/mac目录下,运行 ./adb devices 。

得到类似如下的返回内容,才能确保ADB能正常连接到手机,我们才可以用IDE去连接我们的设备:

>adb.exe devices

List of devices attached

JTJ4C15A(手机的设备号) device

最后,我们还可以检查下手机上是否成功安装了 Yosemite.apk,如果没有自动安装上,我们可以在IDE的文件夹中找到这个apk并手动安装到设备上,并把当前输入法改成Yosemite之后,再次尝试在IDE连接我们的设备。

③ 切换设备和安卓助手

在IDE中连接上安卓真机之后,设备画面的右上角会出现两个按钮,一个用于设备切换,比如当IDE链接了多台设备的时候,在这里可以切换到不同的设备画面;另一个用于打开安卓手机助手和断开当前连接设备。(新版IDE已经将这两个功能合并成1个按钮)

安卓助手可以帮助我们在设备上安装apk、查看设备上的应用包名、切换输入法以及做一些快捷操作等等。(关于安卓助手的功能详情,大家可以扫描二维码阅读详细内容)

连接安卓模拟器

① 连接过程

在模拟器中打开开发者选项,然后把开发者选项中的 “USB调试” 选项打开。在模拟器中手动装上Yosemite输入法,尽管用IDE连接模拟器的时候,部分模拟器能自动装上该输入法,但也存在部分模拟器无法自动装上该输入法,导致很多连接错误,所以我们非常建议在模拟器中手动装上这个输入法。该输入法的apk可以在如下路径找到:

安装好Yosemite以后,打开我们的IDE,点击设备窗口中的远程设备连接,输入模拟器对应的端口号,然后点击“连接”按钮,等待刷出模拟器的设备详情,然后再点击设备列表后面的connect按钮,即可完成连接。

② 常见问题

但需要注意的是,并不是所有模拟器点击connect都能够直接连上IDE,有些模拟器需要点击connect旁边的下拉按钮,选择一些备选的连接参数之后,才能够正常连接上IDE,不然有可能出现黑屏/报错等问题。

之前我们在1.2.3版本的AirtestIDE测试过5款主流的模拟器,总结了连接这些模拟器需要勾选的连接参数和可能会出现的问题,希望能给大家做个参考。

不过,随着模拟器版本和IDE版本的更新,在是否选择备选连接参数这块,可能会稍有不同,如有新的问题出现,也欢迎大家加我们的官方交流Q群()反馈一下。

在脚本中连接安卓真机和模拟器

在IDE的设备窗口连接好我们的待测设备,之后在运行脚本的时候,IDE就会自动把设备的参数传到命令行中,我们可以在log查看窗看到:

所以即使我们的脚本中没有写任何连接设备的语句,我们依然可以用IDE连接好的设备跑自动化脚本。

那么如果我们脱离了IDE,或者不想在IDE的设备窗口中连接设备,这时候该如何连接我们的待测设备呢?有两种方法:

① 在命令行中传入设备参数

在命令行使用airtest run指令运行脚本的时候,添加安卓真机的设备参数:

airtest run D:/test/moniqi_test.air --device Android://127.0.0.1:5037/5PZTQWQOGES8RWUG

其中127.0.0.1:5037代表本机,5PZTQWQOGES8RWUG为设备的序列号,如果需要连接的不是安卓真机,而是模拟器,则用模拟器的端口号代替真机的序列号:

airtest run D:/test/moniqi_test.air --device Android://127.0.0.1:5037/emulator-5554

特别需要注意的是,有些模拟器设备需要勾选连接参数才能够正常连接上,所以这些备选参数也需要被添加到命令中去:

airtest run D:/test/moniqi_test.air --device Android://127.0.0.1:5037/emulator-5554?cap_method=JAVACAP&&ori_method=ADBORI

注意: && 在Windows平台下需要转义成 ^&^& ;在MAC平台下需要转义成 /&/&。否则有可能出现因运行命令被截断而产生的各种报错。

③ 在脚本中编写连接设备的语句

在其它python编辑器跑airtest脚本的时候,就需要在脚本中添加设备连接语句来连接我们的待测设备,方式很多:

1) 使用auto_setup接口:

auto_setup(__file__,devices=["Android://127.0.0.1:5037/5PZTQWQOGES8RWUG","Android://127.0.0.1:5037/emulator-5554"])

2) 使用connect_device接口:

dev = connect_device("Android://127.0.0.1:5037/5PZTQWQOGES8RWUG")

dev = connect_device("Android://127.0.0.1:5037/emulator-5554")

3)使用init_device接口:

init_device(platform="Android",uuid="5PZTQWQOGES8RWUG")

小结

好了,今天我们给大家讲解了俩个内容:一是如何在IDE中连接安卓真机、安卓模拟器以及连接过程中我们可能会遇到的问题;二是脱离AirtestIDE,在命令行或者其它编辑器中连接我们的测试设备,即在命令行和脚本中连接待测设备的方法。

下节课我们会教大家如何连接iOS设备以及在连接iOS设备的过程中,我们会遇到哪些常见的问题,下期我们不见不散~