什么是贝壳?很多人觉得Shell就是命令行,一行行的命令行,百度就能造出来。而且你的简历上只写你熟悉Linux?今天我就用摩拜单车App来讲解一下如何使用Shell操作Android设备进行自
什么是贝壳?很多人觉得Shell就是命令行,一行行的命令行,百度就能造出来。而且你的简历上只写你熟悉Linux?今天我就用摩拜单车App来讲解一下如何使用Shell操作Android设备进行自动化测试。
首先我们需要准备一部手机或者安卓模拟器。然后需要在电脑上配置Android开发环境。
下载 Android SDK:,按照系统版本下载相应的zip包。请按照自己的系统按需下载。zip包解压缩,会生成一个tools目录。需新建一个sdk目录,然后把tools目录移动到sdk目录下。设置环境变量,根据新建sdk目录的位置来添加ANDROID_HOME的路径:使用 sdkmanager 下载工具包
Android Debugging Bridge (adb)是一个通用命令行工具,允许您与仿真器实例或连接的Android设备进行通信。它可以方便各种设备的操作,例如安装和调试应用程序,并提供对Unix shell(可用于在模拟器或连接的设备上运行各种命令)的访问。作为一个客户端-服务器程序,该工具包括三个组件:
客户端:该组件发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。后台程序:该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。服务器:该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。您可以在 sdk/platform-tools/ 中找到 adb 工具。
我们通常使用adb设备查看连接到电脑的Android设备,使用adb shell打开Android设备上的终端执行各种命令。使用adb logcat查看Android设备生成的日志信息。
如果不想使用usb线连接Android设备,可以使用adb tcpip端口在Android设备上启动指定端口,然后使用adb connect Android device ip: port远程连接Android设备。
Uiautomator是一个java库,它包含用于创建自定义函数UI测试的API,以及用于自动执行和运行测试的执行引擎。使用uiautomator帮助来查看帮助信息。这里我们主要使用uiautomator dump来获取当前屏幕的UI层次结构的XML文件。存储文件的默认位置是/sdcard/window_dump.xml,或者您可以指定位置UIAutomator Dump/data/local/tmp/ui . XML。
Input可以用来模拟各种输入操作,比如发送文本、点击控件、滑动坐标等。使用输入查看帮助信息。
input text abc:输入文本abcinput tap x坐标 y坐标:点击坐标位置x,yinput swipe x1坐标 y1坐标 x2坐标 y2坐标:从x1,y1坐标滑动到x2,y2坐标
好了,当我们已经配置好了Android开发环境,大致了解了adb命令的作用,同时了解了Android设备上的uiautomator和input命令,我们就开始进入今天的重点,利用这些命令组合成自动化操作。
首先,我们需要为我们的实践找到一个APP。今天,我们选择“摩拜单车”。你可以在这里下载安装包文件。
下载后,我们使用usb线将Android设备连接到计算机。使用adb设备确认设备是否连接成功。
设备已成功连接。我们需要在Android设备上安装“mobike”应用程序,并执行adb install mobike安装文件。“有些手机有严格的权限管理,你可能需要在手机上点击同意安装这个应用。”
进入安卓设备的终端。
我们先打开摩拜单车应用,然后查看页面的源代码。执行后,一个。将生成xml文件。文件结构如下。每个控件都由。
我们可以根据结构来划分。使用的命令行为:
单击控件中的bounds="[x1,y1][x2,y2]"属性,查找控件中心点的x,y轴坐标。计算方法为(x1+x2)/2,(y1+y2)/2。
然后使用通过上述方法获得的x,y坐标点击应用图标输入抽头167.5 219。最后写一个函数,只需传递控件名称,点击对应图标即可。
点开坐标,因为我手机显示了两个关于摩拜单车应用的坐标,一个是应用图标,一个是应用文字。随便选一个。
WM命令可以检查屏幕分辨率,然后提取分辨率值ADB shell WM size | awk-f“| x”{ print $ 3,},其中空或x作为分隔符。
使用滑动x1 y1 x2 y2进行滑动。例如(以下值为随机):从右向左滑动:滑动0.3 0.8 0.7 0.8从左向右滑动:滑动0.7 0.8 0.3 0.8从上向下滑动:滑动0.8 0.7 0.8 0.8 0.3从下向上滑动:滑动0.8 0.3 0.8 0.7
打开APP,停留12秒。整体运行效果如下。
关闭和登录的整体运行效果如下。
输入手机号登录的整体操作效果如下(上图手机号是随机填写的)。
当然,脚本自动化远不止以上这些。你需要知道更多。比如awk和sed命令函数理解的很深。亚行还有哪些有用的参数?亚行是如何运作的?