一.UiAutomator+ UiAutomatorViewer
1. 官方方案
2. 可以控制到某个节点的点击,活动拖拽等等基本事件
3.支持shell脚本
二.Robotium
是主流的测试方案之一,是一款免费的Android UI测试工具,
主要针对Android平台的应用进行黑盒自动化测试
三.AutomatorX
AutomatorX是网易给出的一套解决方案,是集合了各个测试框架之后给的一个方案,所以目前看来功能点是最全的。
四.Macaca
macaca 是阿里的提供的解决方案,android部分也是基于uiautomator,和AutomatorX很类似,集成了多个工具集。
五.Appium
Appium是一个跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,
大大增加了测试套件间代码的复用性。android部分是基于UiAutomator和Selendroid
转:
分析
其实现在就只有两种基本的解决方案,其他都是基于这两个的拓展,一个是 uiautomator , 另外一个是 uiautomator出来之前的 Instrumentation .
uiautomator 是基于可以通过页面层级结构获得页面元素,也可以直接模拟按键事件。
Instrumentation 是基于android保留的,对元素控制的钩子。
所以现在的方案一定会基于 uiautomator 。不过是看那个封装起来的足够方便,能减少我们这边的开发成本。
链接:https://www.jianshu.com/p/7ef3c5f49928
主要想学习:uiautomator2 ,AutomatorX,Appium 这三个自动化框架
uiautomator2:
Android版本4.4+
Python版本3.6+
开启开发者选项,开启usb调试
连接电脑:adb devices 可以看到设备号
a. 安装 uiautomator2:python -m pip install -U uiautomator2
b.安装weditor(UI Inspector) :python -m pip install -U weditor
c.电脑上连接上一个手机或多个手机,确保adb 已经添加到环境变量中,执行下面的命令
会自动安装本库所需要的设备端程序
python -m uiautomator2 init 安装提示success 即可
三.连接设备
1.通过WiFi ,需确保同一网络
import uiautomator2 as u2
driver = u2.connect("10.0.01") #手机端wifi ip 地址
print(driver.info)
2.通过usb线
import uiautomator2 as u2
d = u2.connect("72168d53") # 括号内为adb devices 获取的设备号
print(d.info)
开始一个测试demo
#导入要用的包
import uiautomator2 as u2
#连接设备
d = u2.connect('M9N7N15930001618') #括号内为adb devices获取的设备号
print(d.info) #连接成功可打印设备信息
# 启动APP
d.app_start("com.tencent.wework") #括号内为要启动的APP包名
#点击企业微信工作台
d.xpath('//*[@text="工作台"]').click()
#向上滑动直到小程序入口元素出现
d(scrollable=True).scroll.to(text="@@@@ x")
#点击小程序入口打开小程序
d.xpath('//*[@text="@@@@ x"]').click()
......
后续就是UI自动化的基本操作,定位元素,等待元素,点击元素,输入文本等等,Xpath定位元素与selenium及appium都一样,只不过uiautomator2有自己的API,大家需熟悉API后根据自己的应用场景灵活调用不同的API实现具体功能来编写测试脚本。