APP自动化测试系列之获取Android的Activity 和 Package

ITester软件测试小栈

共 2967字,需浏览 6分钟

 ·

2020-11-12 14:15

VOL 174

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 ,也会有不同的ActivityPackage,这次主要介绍我们可以通过什么方式去获取它们。




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。



以上

That‘s all
更多系列文章
敬请期待

ITester软件测试小栈
往期内容宠幸


1.Python接口自动化-接口基础(一)

2.Python接口自动化-接口基础(二)


3.Python接口自动化-requests模块之get请求


4.Python接口自动化-requests模块之post请求

5.Python接口自动化之cookie、session应用


6.Python接口自动化之Token详解及应用


7.Python接口自动化之requests请求封装


8.Python接口自动化之pymysql数据库操作


9.Python接口自动化之logging日志


10.Python接口自动化之logging封装及实战

想获取更多最新干货内容
快来星标 置顶 关注
每周一、三、五 08:30见

<<  滑动查看下一张图片  >>


 后台 回复"资源"取干货
回复"微信群"一起打怪升级

个人微信:Cc2015123

添加请注明来意 :)


真爱三连,BiuBiuBiu~


浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报