APP自动化测试系列之获取Android的Activity 和 Package
11
2020-11
今天距2021年50天
这是ITester软件测试小栈第174次推文
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 08:30准时推送,每月不定期赠送技术书籍。
微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信群”一起进群打怪。
本文2752字,阅读约需7分钟
上一篇Appium自动化系列文章:APP自动化测试系列之Desired Capabilities详解,主要介绍Desired Capabilities是什么,Desired Capabilities的作用详解及Desired Capabilities实战应用。
在Desired Capabilities众多配置里面,对于Android来说,以下两个参数都是必不可少的。
appPackage:你想运行的Android应用的Java程序包。
appActivity:启动app包时需要的activity信息。每个程序都有MainActivity,是打开程序时显示在屏幕的活动。
而不同的APP ,也会有不同的Activity
和Package
,这次主要介绍我们可以通过什么方式去获取它们。
dumpsys window
首先要通过USB将手机与电脑连接,注意将手机的调试模式打开,打开Android SDK的platform-tools的文件夹。
在Dos窗口,输入以下命令获取Package和Activity:
adb shell dumpsys window w | findstr \/ | findstr name=
或
adb shell dumpsys window |findstr mCurrent
命令1:adb shell dumpsys window w | findstr \/ | findstr name=
注:橙色圈出的为appPackage,蓝色圈出的为appActivity
命令2:adb shell dumpsys window |findstr mCurrent
注:橙色圈出的为appPackage,蓝色圈出的为appActivity
根据需要,也可通过以下三种方式获取所需:
①获取模拟器正在运行的APP的Package和Activity:
adb shell dumpsys activity | find "mFocusedActivity"
②获取真机正在运行的APP的Package和Activity:
adb shell dumpsys activity | find "mResumedActivity"
③获取带端口号的Activity:
adb shell dumpsys activity top | findstr ACTIVITY
pm list package查看包名
①adb shell pm list package -f ,获取设备的所有apk对应的包名和路径。
②adb shell pm list package -3 -f 获取第三方apk的包。
logcat日志抓START
先启动APP,然后分别输入以下命令:
adb shell
logcat | grep START
如下所示:
logcat日志抓ActivityManager
先启动APP,然后分别输入以下命令:
adb shell
logcat|grep ActivityManager
如下所示:
aapt工具(推荐使用)
aapt是sdk自带的一个工具,在sdk\builds-tools\目录下,使用aapt工具 ,自动获取 apk 的相关信息,非常实用。
①在本地目录下有weixin.apk。
②切换到sdk\builds-tools\中带aapt.exe的目录下,执行如下命令:
aapt dump badging C:\apk\weixin01.apk
如下所示,获取微信软件的包名:
如下所示,获取微信的启动界面:
直接问开发
问开发人员是比较直接有效的,能增加团队交流,气氛紧张时,还能锻炼开发的"动手能力"。
总结:本文介绍了获取app 的Activity和Package的六种方式。
方式一:通过dumpsys window获取
#获取当前页面的Package和Activity
adb shell dumpsys window w | findstr \/ | findstr name=
#或者:
adb shell dumpsys window | findstr mCurrentFocus
#获取模拟器正在运行的APP的Package和Activity
adb shell dumpsys activity | find "mFocusedActivity"
#获取真机正在运行的APP的Package和Activity
adb shell dumpsys activity | find "mResumedActivity"
#获取带端口号的Activity
adb shell dumpsys activity top | findstr ACTIVITY
方式二:列出模拟器或真机中所有软件的Package
#获取设备的所有apk对应的包名和路径
adb shell pm list package -f
#获取第三方apk的包
adb shell pm list package -3 -f
方式三:logcat日志抓START
adb shell
logcat | grep START
方式四:logcat日志抓ActivityManager
adb shell
logcat|grep ActivityManager
方式五:通过aapt工具获取
aapt dump badging C:\apk\weixin01.apk
方式六:询问开发
具体使用哪种方法,根据自己的实际场景和习惯,选择适合的即可。如果小伙伴们有其他的方法,欢迎在下方留言区评论,下期见,Bye。
个人微信:Cc2015123
添加请注明来意 :)