Android UI自动化测试框架,提供了屏幕模拟点击的方法如点击、长按、输入、滑动等;
uiautomator2与uiautomator:
uiautomator2 的底层是基于uiautomator,uiautomator可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:
2.0使用python语言,输出为APK,可以使用安卓服务和接口,开发和调试比1.0简单。
pip3 install --pre -U uiautomator2
pip3 install --pre weditor
设备连接:
应用控制:
元素控制:
两种连接方式:
使用usb:
连接步骤:
1. 手机打开开发者模式,允许usb调试(每种型号手机打开方式不一样,小米:连续点击版本号可以打开开发者模式,具体可以百度)
2. usb连接电脑和手机
3. 手机允许调试
4. 执行adb devices命令查看连接设备
5. 断开连接:断开usb
无线连接:
连接步骤:
1. 先用usb连接,保证手机和电脑在同一网段下
2. 执行adb devices命令查看连接设备序列号
3. 给设备指定一个端口号:adb –s [手机序列号] tcpip [端口号]
4. 连接手机IP:adb connect [手机IP]:[端口号]
5. 断开连接:adb disconnect [手机IP]:[端口号]
华为手机也可以无线连接:
调整设备上开启usb调试的顺序:
Atx-agent:运行在手机后台的插件,获取ip地址,可通过手机版本号,调用不同的命令
启动命令:python3 -m uiautomator2 init
执行后手机上会提示下载atx-agent,点击下载(uiautomator2不稳定,需要atx-agent保活)
启动weditor命令:python3 -m weditor
启动后命令行窗口不要关,会在浏览器打开weditor窗口
python-demo:搜索群名后进群发文本消息(因为没有判断页面元素是否存在的逻辑,初始页面需停留在聊天页)
wechat_dict = d.app_info('com.tencent.mm')#获取微信应用信息
version = wechat_dict['versionName']#获取版本号
if version =='7.0.22':
d.xpath('//*[@resource-id="com.tencent.mm:id/f8y"]').click()#搜索按钮
d.xpath('//*[@resource-id="com.tencent.mm:id/dn7"]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]').click()#搜索输入框
d.send_keys("测试编外群", clear=True)#输入群名
time.sleep(2)
d.xpath('//*[@resource-id="com.tencent.mm:id/gbv"]').click()#点击第一个群
# d.send_keys("测试编外群", clear=True)
time.sleep(2)
d.xpath('//*[@resource-id="com.tencent.mm:id/g78"]').click()#聊天页面输入框
d.set_fastinput_ime(True)
d.send_keys("橙子好吃d", clear=True)#输入消息
# d.send_keys("橙子好吃", clear=True)
d.xpath('//*[@resource-id="com.tencent.mm:id/anv"]').click()#点击发送