Appium app自动化测试经验分享之获取包名以及入口Activity

新年都过去了,我也该回来继续分享啦。很久没写自动化脚本,再拾起来,得学得更加透。
这次先分享下 获取包名和Activity的方法,这儿有自己实践过、总结的几种:

1. 包名-Python脚本中的appPackage

是拿网易云音乐来做例子,实际包名:com.netease.cloudmusic

1. 最简单-手机设置、正在运行服务【已安装】

查看包名 只需要进入 设置-更多应用-正在运行的服务(个别手机需要进入 开发者选项-正在运行的服务)-找到测试app

2. adb shell 的pm命令【已安装】

手机正常连接电脑后,直接在命令行界面输入:

adb shell pm list package

在这里插入图片描述

很多app的包名估计大家也很熟了,如上图 第一个百度网盘,第二个淘宝,倒数第三个支付宝,最后一个wps。

adb shell pm list package -3
参数-3:将获取手机内第三方apk对应的包名(不贴图啦)

3. 手机已root 可查看 /data/data/ 目录 【已安装】

手机在安装一款应用后,系统就会在 /data/data/ 目录下建一个目录,并且文件名就是当前这个应用的包名。
我手上的手机都没有root,没法提供成功的截图。
在这里插入图片描述

4. 其他工具:腾讯GT 【已安装】

GT是由腾讯无线研发部专项测试组研发的一款性能测试工具

5. uiautomatorviewer 【已安装】

元素定位一般都会用到uiautomatorviewer,其实也可以用它查看package(有时候也可以根据resource-id的属性值来判断)
在这里插入图片描述

6. logcat 抓取app日志 不推荐使用

抓取的日志搜索"package:" 有很多结果,是需要进行筛选的;
(此外搜索"cmp"会找到很多activity)

在这里插入图片描述

扫描二维码关注公众号,回复: 9395954 查看本文章

2. Activity-Python脚本中的appActivity

后面部分方法所得到的结果需要去掉斜杠,实际的Activity:com.netease.cloudmusic.activity.LoadingActivity

android.intent.action.MAIN 决定应用程序最先启动的Activity

android.intent.category.LAUNCHER 决定应用程序是否显示在程序列表里

1. Monkey测试

指定模拟随机事件为一次
在这里插入图片描述

2. dump package 获取安装包基本信息

在这里插入图片描述

3. dumpsys activity 信息查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. apktool 反编译

在这里插入图片描述

查看AndroidManifest.xml文件
在这里插入图片描述
在这里插入图片描述

5. 使用grep

grep:linux平台查找字符串命令,一般先adb shell 进入shell命令行再使用

logcat | grep START
在这里插入图片描述
logcat | grep cmp
在这里插入图片描述
adb logcat | findstr START
在这里插入图片描述

6. aapt(android asset packaging tool)

aapt 这个工具在 SDK 的 build-tools 目录下面;

aapt dump badging <file_path.apk>,可以查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息,即 Print the label and icon for the app declared in APK

在这里插入图片描述

可以找到 package: name=‘xxxx’
在这里插入图片描述

可以找到 launchable-activity: name=‘XXXX’
在这里插入图片描述

7. 不推荐使用

这种方法需要先打开应用,所以获得的activity极有可能不是入口Activity。

adb shell dumpsys activity | find “mFocusedActivity”
adb shell dumpsys window w | findstr / | findstr name=
adb shell dumpsys window |findstr mCurrent

在这里插入图片描述

实际脚本运行结果:
在这里插入图片描述
实际的报错原因:
Original error: Error occured while starting App. Original error: Permission to start activity denied.
在这里插入图片描述

其实方法千万种,掌握一种,学明白、用得上就够了。

交流技术 欢迎+QQ 153132336 zy

发布了78 篇原创文章 · 获赞 24 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/87912499