乐趣区

关于软件测试:你以为Shell只是命令行读懂这篇文给你的工作赋能

Shell 是什么呢?很多人认为的 Shell 就是命令行,一条条能够百度进去的命令行。而简历上你只会写相熟 Linux?明天用摩拜 App 给大家解说下如何应用 Shell 去操作 Android 设施进行自动化测试。

首先咱们须要筹备一部手机或者一个 Android 模拟器。而后电脑上须要配置 Android 开发环境。

  • 下载 Android SDK:,依照零碎版本下载相应的 zip 包。请依照本人的零碎按需下载。
  • zip 包解压缩,会生成一个 tools 目录。需新建一个 sdk 目录,而后把 tools 目录挪动到 sdk 目录下。
  • 设置环境变量,依据新建 sdk 目录的地位来增加 ANDROID_HOME 的门路:
  • 应用 sdkmanager 下载工具包

Android 调试桥 (adb) 是一个通用命令行工具,其容许您与模拟器实例或连贯的 Android 设施进行通信。它可为各种设施操作提供便当,如装置和调试利用,并提供对 Unix shell(可用来在模拟器或连贯的设施上运行各种命令)的拜访。该工具作为一个客户端 - 服务器程序,包含三个组件:

  • 客户端:该组件发送命令。客户端在开发计算机上运行。您能够通过收回 adb 命令从命令行终端调用客户端。
  • 后台程序:该组件在设施上运行命令。后台程序在每个模拟器或设施实例上作为后盾过程运行。
  • 服务器:该组件治理客户端和后台程序之间的通信。服务器在开发计算机上作为后盾过程运行。
    您能够在 sdk/platform-tools/ 中找到 adb 工具。

咱们通常应用 adb devices 来查看电脑上连贯的 Android 设施,应用 adb shell 关上 Android 设施上的终端来执行各种命令。应用 adb logcat 来查看 Android 设施产生的 log 信息。

如果不想应用 usb 线来连贯 Android 设施,能够应用 adb tcpip 端口在 Android 设施上启动一个指定的端口,而后应用 adb connect Android 设施 ip: 端口近程连贯 Android 设施。

uiautomator 是一个 java 库,蕴含用于创立自定义性能 UI 测试的 API,以及用于主动执行和运行测试的执行引擎。应用 uiautomator help 能够查看帮忙信息。此处咱们次要应用 uiautomator dump 来获取以后屏幕的 UI 层次结构的 XML 文件。默认存储文件的地位 /sdcard/window_dump.xml,也能够指定寄存的地位 uiautomator dump /data/local/tmp/ui.xml。

input 能够用来模仿各种输出操作,例如:发送文本、点击控件、滑动坐标。应用 input 能够查看帮忙信息。

  • input text abc:输出文本 abc
  • input tap x 坐标 y 坐标:点击坐标地位 x,y
  • input swipe x1 坐标 y1 坐标 x2 坐标 y2 坐标:从 x1,y1 坐标滑动到 x2,y2 坐标

好了,当咱们配置好 Android 开发环境,大略理解 adb 命令的作用之后,同时晓得了 Android 设施上的 uiautomator 和 input 命令后,就开始咱们进入明天的重点了,应用这些命令来组合成自动化的操作。

首先呢,咱们须要找一个咱们练习用的 APP,明天咱们抉择的是”摩拜单车“。大家能够在此处下载安装包文件。

下载实现之后,咱们把 Android 设施应用 usb 线连贯到电脑。应用 adb devices 来确认设施是否连贯胜利。

设施曾经连贯胜利,咱们须要把“摩拜单车”利用装置到 Android 设施上,执行 adb install 摩拜单车安装文件,“有些手机权限治理比拟严格,可能须要在手机上点击批准装置此利用。”

进入 Android 设施的终端下

咱们先关上摩拜单车利用,而后去查看一下页面的源码
执行后会生成一个.xml 文件。文件构造如下。每个控件都是由 <node></node> 组成。

咱们能够依照 <node />、</node > 构造来进行拆分。应用的命令行为:

点击
依据控件中的 bounds=”x1,y1″ 属性来查找控件中心点的 x,y 轴坐标,计算方法是(x1+x2)/2,(y1+y2)/2

而后应用下面的办法失去的 x,y 坐标来点击利用图标 input tap 167.5 219。最初写成一个函数,只有传递控件的名字就能点击相应的图标啦。

点击坐标,因为我的手机下面显示了两条对于摩拜利用的坐标,一个是利用图标的,一个是利用文本的,抉择其中一个即可。

wm size 命令能够查看屏幕分辨率,而后提取分辨率的数值 adb shell wm size |awk -F ‘ |x’ ‘{print $3,$4},这里应用了空格或者 x 做分隔符。

应用 swipe x1 y1 x2 y2 进行滑动。例如(上面数值均为随机数值):
从右向左滑动:swipe 0.3 0.8 0.7 0.8
从左向右滑动:swipe 0.7 0.8 0.3 0.8
从上向下滑动:swipe 0.8 0.7 0.8 0.3
从下向上滑动:swipe 0.8 0.3 0.8 0.7

关上 APP 并停留 12 秒
整体的运行成果是这样的。

敞开提醒并登录
整体的运行成果是这样的。

输出手机号并登录
整体的运行成果是这样的(上图手机号为随机填写)。

当然,脚本自动化远不止下面这些。你须要晓得更多。比方 awk,sed 命令性能深刻理解,adb 到底还有什么好用的参数?adb 的运行原理?

退出移动版