自动化工具
- Android Debug Bridge(ADB)即安卓调试桥,是Google提供的为Android编写UI测试用例的自动化工具;
- UIAutomator Google提供的为Android编写UI测试用例的自动化工具;
- UIAotomator2 uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库;
- appium 跨平台的测试框架, 同时支持iOS和Android。
- termux
- qpython op
- child::一触即发软件
详细介绍
安卓调试桥
ADB是一个C/S架构的应用程序,由三部分组成:
运行在pc端的adb client:
命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求;
运行在pc端的adb server:
ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上;
运行在设备端的常驻进程adb demon (adbd):
程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
UiAutomator
UiAutomator是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架,基于Accessibility服务。其最大的特点就是可以跨进程操作,可以使用UiAutomator框架提供的一些方便的API来对安卓应用进行一系列的自动化测试操作,如点击、滑动、键盘输入、长按以及常用的断言方法等。
要使用该工具,需要满足如下条件:
Android SDK Tools, Revision 21 or higher
Android SDK Platform, API 18 or higher
在Android SDK 4.3中提供了如下工具来支持UI自动化测试:
UIAotomator2
1.环境搭建便捷
2.UI控件识别有专业工具,可视化好
3.UI自动化编写采用python,学习成本低
4.UI自动化脚本运行稳定
缺点:
存在设备兼容性问题,如:
华为手机,无法通过IP离线执行UI自动化
三星S8手机微信webView页面无法识别元素
appium
appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。
“移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。
“移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。
“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。
重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。
appium与Selenium
appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。
appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。
appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium 客户端。当然,appium 客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,所以他们仍然可以用来运行通用的Selenium会话。
termux
termux是安卓手机上的一款软件,相当于在安卓上搭建了一个Linux平台,所以在Linux上能干的事情很多在手机上也都办得到,比如本文就是介绍与python相关的内容。
实际上,得益于安卓平台的开放性,类似termux的手机神器着实不少。不说各类强大的编程IDE,单是termux这样的Linux平台类软件就很多,如GnuRoot系列,LinuxDisplay系列等。这其中termux很受人欢迎,对于我来说,其主要优点一是体积小,二是不需要root,三是网上能找到很多相关资源。
除了termux之外,它还有一大群兄弟姐妹们(各种插件)可供大家挑选使用,如下所示。
Termux has some extra features. You can add them by installing addons: Termux:APl Access Android and Chrome hardware features. Termux:Boot Run script(s) when your device boots. Termux:Float Run Termux in a floating window. Termux: Styling Have color schemes and powerline-ready fonts customize the appearance of the Termux terminal. Termux: Task An easy way to call Termux executables from Tasker and compatible apps. Termux:Widget Start small scriptlets from the home screen.
qpython op
手机较为主流的python IDE
摘抄知乎某人评论: 实际上现在来看,安卓上用Qpython和Pydroid来操作python也不错,毕竟在手机上还是ide用着更舒服。Qpython的ipython notebook用着就很舒服,不需要在手机浏览器里使用了,再有就是android模块也有很多有用的功能。只可惜不支持Python3,另外很多库也没法安装。Qpython的话Python2/3都支持,pip几乎可安装所有的第三方模块,实在太强大了。