安卓UI自动化工具uiautomator项目实战前准备工作
一:环境准备
硬件设备:windows电脑
软件:pycharm蓝叠或闪电模拟器SDKmanager
闪电模拟器下载链接:https:www。ldmnq。com?n6000bdvid11623493887955105097
二:自动化脚本编写前需要掌握的基础python基础变量变量常用的数据类型(字符串intdictlist)的声明和调用,以及数据了类型间的转换函数(带参函数不带参函数有返回值没有返回返回值)的声明与调用开源库的安装、调用判断语句与for循环2。常用的adb命令
(1)查看已连接的设备列表:adbdevices
(2)开启或关闭ADB服务:
开启:adbstartserver
结束:adbkillserver
(3)连接设备:adbconnectIP断开设备:adbdisconnectIP
如果是USB连接,直接会连接ADB,如果是想通过网络连接(有线或者无线),则需要在同一个局域网,通过设备的ip地址连接即可。
(4)安装卸载apk
安装apkadbinstallrapk路径
常用参数说明:t允许测试包l锁定该应用程序s把应用程序安装到sd卡上g为应用程序授予所有运行时的权限r替换已存在的应用程序,也就是说强制安装d允许进行将见状,也就是安装的比手机上带的版本低
卸载apkadbuninstallapk包名
(5)抓取日志logcat
常用参数说明
s选项:只显示指定标签的日志;adblogcatsSWVDEC显示SWVDEC标签的日志
v选项:设置日志的输出格式;adblogcatvthreadtime查看日志输出时间和线程信息
c选项:清空所有的日志缓存信息;adblogcatc
d选项:将缓存的日志输出到屏幕上,并且不会阻塞;adblogcatd
t选项:输出最近的几行日志,输出完退出,不阻塞;adblogcatt5输出日志缓冲区的最近5行获取cpu占用:top
常用参数说明:
mnumMaximumnumberofprocessestodisplay。最多显示多少个进程
nnumUpdatestoshowbeforeexiting。刷新次数
dnumSecondstowaitbetweenupdates。刷新间隔时间(默认5秒)
scolColumntosortby(cpu,vss,rss,thr)。按哪列排序
tShowthreadsinsteadofprocesses。显示线程信息而不是进程获取内存占用:dumpsysmeminfo
获取指定应用的内存dumpsysmeminfo包名获取应用进程号ps
(9)从手机中拉取信息到本地电脑上adbpull手机路径本机路径
从本地电脑推送信息到手机上adbpush本机路径手机路径
(10)获取当前运行的Activity
adbshelldumpsysactivityfindstrgrepmFocusedActivity
(11)adb截图命令:screencap保存图片文件路径
(12)adb录屏命令:screenrecord保存视频文件路径(默认录制时间和最长录制时间都是180秒)
常用参数说明
sizeWIDTHHEIGHT视频的尺寸,如1280720,默认是屏幕分辨率
bitrateRATE视频的比特率,默认4Mbps
timelimitTIME录制时长,单位:秒
三:自动化UI脚本编写流程
模拟器配置模拟器系统配置
性能设置选项设置为手机版7201280,如下图所示
机型设置都一致选择MI9(个别机型可能存在兼容性bug,方便统一解决问题),如下图所示
其他设置中开启ROOT权限和ADB调试,如下图所示
然后保存设置,会提示重启系统才会生效,重启系统后,在cmd窗口中,输入:adbdevices,显示如下信息,证明连接成功。
然后安装我们要测试的apk安装uiautomator(用来做xpath值获取的工具)
(1)安装uiautomator2库
pipinstallpreuiautomator2
pipinstallpillow(如果需要截图,可安装这个库)
(2)安装atxagent
init就是所有USB连接电脑的手机上都安装uiautomator2
pythonmuiautomator2init
指定手机安装uiautomator2,用mirror
pythonmuiautomator2initmirrorserialSERIAL
嫌弃慢的话,可以用国内的镜像
pythonmuiautomator2initmirror
最后提示success,代表atxagent初始化成功。
(3)安装Weditor
pipinstallUweditor
安装好之后,就可以在命令行运行weditorhelp确认是否安装成功了。
Windows系统可以使用命令(weditorshortcut)在桌面创建一个快捷方式,
如下图所示:
启动weditor的方式
方法1。命令行直接输入weditor会自动打开浏览器,输入设备的ip或者序列号,点击Connect即可;
方法2。桌面上双击WEditor快捷方式即可;
方法3。命令行中执行pythonmweditoruiautomator常用API
参考教程https:vic。kim20190520UIAutomator2E79A84E4BDBFE794A8
截至这里,各种环境已经安装完毕!需求用例熟悉
我们看2条注册模块的用例:
用例编号
模块
预置条件
操作步骤
期望结果
测试结果
1hr注册
网络正常输入正确的账号和密码点击注册
2。弹出toast,提示注册成功,跳转到登录页面
2hr注册
网络正常1。输入已经注册过的账号和密码
2。点击注册
2。弹出账号已经注册的toast提示
拆解操作步骤,结果判断等
操作步骤:打开app,点击注册按钮,然后定位到账号和密码文本框分别做出对应的操作
判断:注册成功后,弹出注册成功后,会跳转到登录页面,重复注册只是给出toast提示
以上是操作步骤和预期结果,在实际工作中,我们还需要在问题出现的时候,截屏或录屏并给开发抓取log,最好还要给出执行用例的时间。
操作步骤如下
然后我们用代码实现如下图:importosimporttimeimportuiautomator2asus导入uiautomator2库as是取个别名叫us通过连接实例化拿到设备类driverus。connectusb()通过包名启动app录制屏幕os。system(startadbshellscreenrecordtimelimit60sdcardtest2。mp4)driver。appstart(com。example。wenhaotest)引号内为包名称time。sleep(5)通过xpath定位到注册按钮并点击driver。xpath(〔resourceidcom。example。wenhaotest:idbtn1〕)。click()driver。xpath(〔resourceidcom。example。wenhaotest:idbtn2〕)。click()time。sleep(5)当注册页面的某个xpath出现后,我们通过xpath定位到账号和密码并输入对应的内容,然后点击注册按钮ifdriver。xpath(〔resourceidcom。example。wenhaotest:idregisterbutton〕)。exists:通过xpath定位到账号输入内容driver。xpath(〔resourceidcom。example。wenhaotest:idregisteruser〕)。settext(1kobebrant2)通过xpath定位到密码输入内容driver。xpath(〔resourceidcom。example。wenhaotest:idregistermm〕)。settext(8888888888)通过xpath定位到注册按钮并点击driver。xpath(〔resourceidcom。example。wenhaotest:idregisterbutton〕)。click()硬等待通过登录页面唯一xpath值定位,确认是否跳转,如登录页面有登录按钮通过对应函数获取app弹出的toast内容textContentdriver。toast。getmessage()print(textContent)硬等待time。sleep(5)if(driver。xpath(〔resourceidcom。example。wenhaotest:idbtn1〕)。existsandstr(textContent)注册成功):print(pass)抓取日志os。system(adblogcatt100000C:UsersLENOVODesktoptest1。log)else:print(failed)抓取日志os。system(adblogcatt100000C:UsersLENOVODesktoptest1。log)
养生堂今日1725播出以和为贵治肿瘤调和法专家国医大师山西省中医院原院长王晞星关键词调和脾胃肝脾肿瘤癌细胞也能弃恶从善,安分守己吗?国医大师王晞星认为脏腑经络阴阳气血等相互和谐,机体才能达到阴平阳秘的状态,由此提出了和法治
精彩!西方网友激烈讨论乌克兰加入北约不会再有乌克兰加入北约了。泽伦斯基对这场战争很满意,有了朋友,有了政治影响力,对他的国家已经和将要遭受的大规模伤亡视而不见。这位喜剧演员出身的总统上台时承诺为乌克兰东部带来和平。真
土耳其球迷向球场投掷毛绒玩具,以悼念在地震中逝去的儿童当地时间2月26日,在土耳其伊斯坦布尔沃达丰体育场举行的土耳其足球超级联赛中,球迷们向球场内抛掷大量各种形状和大小的毛绒玩具,以悼念在强震中遇难的儿童。这场比赛在第4分17秒暂停,
2023年12月中缅边境弄岛通道跨境贸易额达1。5亿元图为车辆进出弄岛通道。瑞丽边检站供图中新网德宏2月28日电(杨婷婷赵奕越)记者28日从瑞丽出入境边防检查站获悉,2023年前2个月,中缅边境弄岛通道进出口货物量达8万吨,跨境贸易额
16岁时因长得太美被印在1元纸币上,如今她怎样了?贵州寨子有个姑娘,笑起来眉眼弯弯,看上去漂亮又动人。想要把她娶回家的小伙,从村头排到村尾,她是公认的美女,被誉为寨子里的一枝花。一次去镇上赶集时,她感到自己的衣服被人拉了一下。一回
极米科技2022年净利5。16亿元同比增长6。69中证智能财讯极米科技(688696)2月27日晚间披露2022年度业绩快报,公司实现营业收入42。22亿元,同比增长4。57归母净利润5。16亿元,同比增长6。69扣非净利润4。4
世界上现存最早的科学星图南京展出视频加载中现代快报讯(记者胡玉梅储希豪文摄)你知道吗?人类观测星空的记载可以追溯到一万多年前。世界上现存最早的科学星图来自敦煌遗书,距今有1300多年的历史近日,描绘苍穹星空影像与
宿迁5家入选省级大思政课实践教学基地为贯彻落实教育部等十部门关于印发全面推进大思政课建设的工作方案的通知精神省教育厅联合省相关部门开展了省级大思政课实践教学基地推选工作经单位申报推选部门初选综合评定全省96家单位入选
聪明和智慧真不是一回事中国历史上最盛世的时代毫无疑问是大唐王朝,疆域辽阔,科技发达,商事兴旺,民风热烈而自信,八方来朝,四方来贺。但是盛世之下其实又潜藏着骨子里的危机四伏。藩镇割据,宦官专权,贪污腐化,
小米发布无线AR眼镜探索版小米,永远要做米粉心中最酷的公司。借助这次巴塞罗那大会,小米发布首款AR产品,小米无线AR眼镜探索版。下边介绍一下产品的重要参数。首先是降低延迟,小米自研低延迟通讯链路和高通Spa
厦门新体育中心投用在即!3月下旬迎接CBA全明星周末赛事厦门市新体育中心凤凰体育馆内一派繁忙景象。(许文瑾摄)中国日报福州2月22日电(记者胡美东)近日,记者走进厦门市新体育中心凤凰体育馆内,只见现场各工程项目已进入收尾阶段凤凰体育馆场