赞
踩
今天给大家介绍一款谷歌推出的,基于UIAutomator2框架做APP自动化测试框架,相应于Appium而言,其执行速度,查找元素会更快,能够在一定程度上提升自动化测试效率。
(一)UiAutomator2介绍
UIAutomator2是UIAutomator的升级版,UIAutomator是Google开发的一款用来做Android自动化测试的Java库,而UIAutomator2就是在UIAutomator基础上开发的python库。因此可以通过UIAutomator2做APP自动化测试。
它可以获取APP上任意的元素控件对其进行操作,相较于Appium,UIAutomator2环境搭建简单方便,执行速度快,不过它只支持Android平台,不支持iOS
运行原理:
PC端通过python脚本给Android设备发送HTTP请求,Android设备会解析收到的HTTP请求并转化为UIAutomator2代码运行
1. 安装UIAutomator2
pip install -u uiautomator2
2. 安装weditor
想要了解如何使用weditor工具,可查看另外一篇文章。
- import uiautomator2 as u2
-
- # USB连接
- d = u2.connect_usb(id) # id 为 adb devices 命令中得到的设备 id
-
- # Wifi连接
- d = u2.connect(ip) # ip 为 手机 ip
2. APP控制
- # 安装APP
- d.app_install('路径名/xxx.apk')
- # 打开APP
- d.app_start("app_package_name")
- #关闭APP
- d.app_stop("app_package_name")
- # 关闭所有APP
- d.app_stop_all()
- # 清空APP所有数据
- d.app_clear('包名')
3. 元素定位
由于页面元素(控件)一般有 resourceId 、text、description、className 等属性,因此可以通过这些属性定位到具体控件。
3-1 resourceId定位
d(resourceId="xxxx")
3-2 text定位
d(text="xxx")
3-3 description定位
d(description="xxx")
3-4 className定位
d(className="xxxx")
3-5 xpath定位
d.xpath("xpath路径")
4. 元素操作
4-1 单击元素
- element = d.xpath('xpath路径')
- element.click()
4-2 双击元素
- element = d.xpath('xpath路径')
- element.double_click()
4-3 长按元素
- element = d.xpath('xpath路径')
- element.long_click()
4-4 输入文本
- d.set_fastinput_ime(True) # 打开输入法
- d.send_keys(text) # 输入文本
- d.set_fastinput_ime(False) # 关闭输入法
4-5 清除文本
- element = d.xpath('xpath路径')
- element.clear_text()
4-6 获取文本
- element = d.xpath('xpath路径')
- element.get_text()
4-7 手势操作
- # 滑动
- d.swipe(sx, sy, ex, ey, duration=0.5)
- # 拖拽
- d.drag(sx, sy, ex, ey, duration=0.5)
4-8 系统控制
- # 按键操作
- # key = {"back", "home", "recent", "power", "volume_up", "volume_down", "volume_mute", "enter",...}
- d.press(key)
-
- # 截屏
- image = d.screenshot()
- image.save("path.jpg")
-
- d.screenshot("path.jpg") # 截屏并保存
5. UIAutomator2自动化测试Android APP
- # -*- coding:utf-8 -*-
- import uiautomator2 as u2
-
- # 连接并启动
- d = u2.connect()
-
- # 打印当前連接设备信息
- print(d.info)
-
- d.implicitly_wait(20)
-
- """
- 下面是执行打开一个房屋交易APP,并进入搜索页面,输入关键词,并点击搜索
- """
-
- # 启动app
- d.app_start("com.addcn.android.house591")
- # 1. 定位元素点击元素,使用xpath定位
- d.xpath('//*[@text="中古屋"]').click()
-
- # # 2.定位元素输入框,使用属性定位
- # # uiautomator2定位方式:d(定位方式=定位值)
- d(description="請輸入社區/街道名稱搜尋").click()
-
- # # 3.在输入框输入内容,并点击提交
- d(text="請輸入社區/街道名稱搜尋").send_keys('测试')
-
- # 清除输入框内容
- # d.clear_text()
-
- # 点击回车键
- d.press('enter')
-
- # 点击搜索匹配的房屋详情卡片
- d.xpath('//android.widget.ScrollView/android.view.View[2]').click()
-
- # 关闭应用
- d.app_stop_all()
由于UIAutomator2自动化框架相较于Appium框架更加便捷、使用起来更加方便,感兴趣的小伙伴也可以试试
最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。