APP自動(dòng)化測(cè)試系列之獲取Android的Activity 和 Package

11
2020-11
今天距2021年50天
這是ITester軟件測(cè)試小棧第174次推文

點(diǎn)擊上方藍(lán)字“ITester軟件測(cè)試小棧“關(guān)注我,每周一、三、五早上?08:30準(zhǔn)時(shí)推送,每月不定期贈(zèng)送技術(shù)書(shū)籍。
微信公眾號(hào)后臺(tái)回復(fù)“資源”、“測(cè)試工具包”領(lǐng)取測(cè)試資源,回復(fù)“微信群”一起進(jìn)群打怪。
本文2752字,閱讀約需7分鐘
上一篇Appium自動(dòng)化系列文章:APP自動(dòng)化測(cè)試系列之Desired Capabilities詳解,主要介紹Desired Capabilities是什么,Desired Capabilities的作用詳解及Desired Capabilities實(shí)戰(zhàn)應(yīng)用。
在Desired Capabilities眾多配置里面,對(duì)于Android來(lái)說(shuō),以下兩個(gè)參數(shù)都是必不可少的。
appPackage:你想運(yùn)行的Android應(yīng)用的Java程序包。
appActivity:?jiǎn)?dòng)app包時(shí)需要的activity信息。每個(gè)程序都有MainActivity,是打開(kāi)程序時(shí)顯示在屏幕的活動(dòng)。
而不同的APP ,也會(huì)有不同的Activity和Package,這次主要介紹我們可以通過(guò)什么方式去獲取它們。
dumpsys window
首先要通過(guò)USB將手機(jī)與電腦連接,注意將手機(jī)的調(diào)試模式打開(kāi),打開(kāi)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,藍(lán)色圈出的為appActivity
命令2:adb shell dumpsys window |findstr mCurrent

注:橙色圈出的為appPackage,藍(lán)色圈出的為appActivity
根據(jù)需要,也可通過(guò)以下三種方式獲取所需:
①獲取模擬器正在運(yùn)行的APP的Package和Activity:
adb?shell?dumpsys?activity?|?find?"mFocusedActivity"
②獲取真機(jī)正在運(yùn)行的APP的Package和Activity:
adb?shell?dumpsys?activity?|?find?"mResumedActivity"
③獲取帶端口號(hào)的Activity:
adb?shell?dumpsys?activity?top?|?findstr?ACTIVITY
pm list package查看包名
①adb shell pm list package -f?,獲取設(shè)備的所有apk對(duì)應(yīng)的包名和路徑。

②adb shell pm list package -3 -f ? ?獲取第三方apk的包。

logcat日志抓START
先啟動(dòng)APP,然后分別輸入以下命令:
adb?shell
logcat?|?grep?START
如下所示:

logcat日志抓ActivityManager
先啟動(dòng)APP,然后分別輸入以下命令:
adb?shell
logcat|grep?ActivityManager
如下所示:

aapt工具(推薦使用)
aapt是sdk自帶的一個(gè)工具,在sdk\builds-tools\目錄下,使用aapt工具 ,自動(dòng)獲取 apk 的相關(guān)信息,非常實(shí)用。
①在本地目錄下有weixin.apk。

②切換到sdk\builds-tools\中帶aapt.exe的目錄下,執(zhí)行如下命令:
aapt?dump?badging?C:\apk\weixin01.apk
如下所示,獲取微信軟件的包名:

如下所示,獲取微信的啟動(dòng)界面:

直接問(wèn)開(kāi)發(fā)
問(wèn)開(kāi)發(fā)人員是比較直接有效的,能增加團(tuán)隊(duì)交流,氣氛緊張時(shí),還能鍛煉開(kāi)發(fā)的"動(dòng)手能力"。
??? ?? ?
總結(jié):本文介紹了獲取app 的Activity和Package的六種方式。
方式一:通過(guò)dumpsys window獲取
#獲取當(dāng)前頁(yè)面的Package和Activity
adb?shell?dumpsys?window?w?|?findstr?\/?|?findstr?name=
#或者:
adb?shell?dumpsys?window?|?findstr?mCurrentFocus
#獲取模擬器正在運(yùn)行的APP的Package和Activity
adb?shell?dumpsys?activity?|?find?"mFocusedActivity"
#獲取真機(jī)正在運(yùn)行的APP的Package和Activity
adb?shell?dumpsys?activity?|?find?"mResumedActivity"
#獲取帶端口號(hào)的Activity
adb?shell?dumpsys?activity?top?|?findstr?ACTIVITY
方式二:列出模擬器或真機(jī)中所有軟件的Package
#獲取設(shè)備的所有apk對(duì)應(yīng)的包名和路徑
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
方式五:通過(guò)aapt工具獲取
aapt?dump?badging?C:\apk\weixin01.apk
方式六:詢問(wèn)開(kāi)發(fā)
具體使用哪種方法,根據(jù)自己的實(shí)際場(chǎng)景和習(xí)慣,選擇適合的即可。如果小伙伴們有其他的方法,歡迎在下方留言區(qū)評(píng)論,下期見(jiàn),Bye。


個(gè)人微信:Cc2015123
添加請(qǐng)注明來(lái)意 :)

