关于安卓App自动化的一些想法

安卓App自动化一般使用Python+Appium。页面元素通常是使用AndroidStudio中的UI Automator Viewer工具来进行页面元素的追踪。但是这里涉及到一个问题就是,安卓apk在每次打包的时候,会进行页面的混淆以及加固,所以导致每次apk打包之后会出现页面元素id变化的问题。该问题一般有以下几种解决方案:

1.使用相对位置对控件进行定位,但是缺点也很明显,一旦后端开发改变布局,则很多相关控件的定位需要重新进行书写。

2.直接使用元素的class进行定位,缺点也很明显,一旦开发控件进行修改,则也需要修改。

3.基于混淆的原理,即使解决了1,2点中的问题,随着每次打包,控件的id等信息也会随之改变。所以,可以让卡法给测试打包的时候取消混淆,这样控件可以最大程度保持之前的id,不至于每次都需要重新寻找最新的id。其次就是,将使用到的控件进行静态文件的封装,例如按钮1,对应btnClick,这个对应关系可以用类似于Java开发中的静态变量去进行控制,这样每次需要修改的时候,不需要去动主代码,只需要修改静态文件中的变量和实际值的对应关系即可。下图是一款之前为我们开发的软件,关闭混淆之后,页面控件id便会固定,不会被修改,大大减少了自动化测试的脚本修改成本。

相关推荐
G_H_S_3_18 分钟前
【网络运维】Playbook项目实战:基于 Ansible Playbook 一键部署 LNMP 架构服务器
linux·运维·服务器·网络·ansible
yuxb731 小时前
Ansible 学习笔记:变量事实管理、任务控制与文件部署
linux·运维·笔记
中草药z1 小时前
【自动化测试】Selenium详解-WebUI自动化测试
前端·功能测试·selenium·自动化·html·web·测试
岚天start1 小时前
Linux sar命令详细使用指南
linux·运维·服务器·负载·sar·磁盘io·sysstat
Kapaseker2 小时前
你一定会喜欢的 Compose 形变动画
android
遇见火星2 小时前
Jenkins全链路教程——Jenkins调用Maven构建项目
运维·jenkins·maven
QuZhengRong2 小时前
【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
android·数据库·excel
zhangphil3 小时前
Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin(2)
android·kotlin
wanhengidc6 小时前
当云手机出现卡顿怎么办?
运维·服务器·安全·智能手机
双翌视觉8 小时前
机器视觉的磁芯定位贴合应用
数码相机·自动化·机器视觉