ADB移动端测试
一:手機(jī)端常規(guī)測(cè)試
1.介紹手機(jī)測(cè)試的
對(duì)于手機(jī)端測(cè)試,按照平臺(tái)來(lái)分,分為Android和IOS兩大主流系統(tǒng)
對(duì)于ios和Android,二者有區(qū)別,我就說(shuō)一下我在測(cè)試這兩款手機(jī)app的感受吧
1、兩者運(yùn)行機(jī)制不同:IOS采用的是沙盒運(yùn)行機(jī)制,安卓采用的是虛擬機(jī)運(yùn)行機(jī)制。
2、兩者后臺(tái)制度不同:IOS中任何第三方程序都不能在后臺(tái)運(yùn)行;安卓中任何程序都能在后臺(tái)運(yùn)行,直到?jīng)]有內(nèi)存才會(huì)關(guān)閉。
3、IOS中用于UI指令權(quán)限最高,安卓中數(shù)據(jù)處理指令權(quán)限最高。
Android開(kāi)源導(dǎo)致碎片化比較嚴(yán)重,(手機(jī)品牌眾多,系統(tǒng)版本各異,分辨率不統(tǒng)一,主流手機(jī)型號(hào)上千。無(wú)法保證應(yīng)用、游戲?qū)τ谒惺謾C(jī)的適配兼容。)bug比較多,而IOS通常bug會(huì)少一些。
https://blog.csdn.net/abc6368765/article/details/84336126
2.軟件測(cè)試考慮因素
1.功能測(cè)試
我就先來(lái)說(shuō)一下功能測(cè)試吧,對(duì)于手機(jī)app來(lái)說(shuō),和我們測(cè)試web項(xiàng)目差不太多,也是各種測(cè)試方式需要考慮進(jìn)來(lái),比如說(shuō)邏輯功能測(cè)試,現(xiàn)在移動(dòng)端越來(lái)越火爆,大家用的軟件也越來(lái)越多,對(duì)軟件也越來(lái)越挑剔,現(xiàn)在公司在開(kāi)發(fā)移動(dòng)端的時(shí)候,肯定是有相應(yīng)的需求文檔,我們做邏輯功能測(cè)試,就是根據(jù)這些資料,當(dāng)然也根據(jù)我們正常人的邏輯思維進(jìn)行邏輯功能測(cè)試,就拿我上個(gè)項(xiàng)目來(lái)說(shuō),它就是一個(gè)移動(dòng)端項(xiàng)目,在做邏輯功能測(cè)試的時(shí)候,我們要測(cè)試主頁(yè)面,我的頁(yè)面,商城頁(yè)面這些功能是否合理。
2.安裝與卸載測(cè)試
軟件安裝后是否可以正常運(yùn)行,安裝過(guò)程中是否可以取消,安裝空間不足時(shí),是否有相應(yīng)提示,是否可以卸載應(yīng)用(可通過(guò)桌面卸載,也可以通過(guò)軟件卸載。曾發(fā)現(xiàn)在IOS手機(jī)上有個(gè)應(yīng)用安裝時(shí)未完全安裝,終止安裝后,未完成安裝的應(yīng)用圖標(biāo)一直顯示在手機(jī)上,并且無(wú)法成功刪除),卸載是否支持取消功能,單擊取消后軟件卸載功能是否正常,卸載后文件是否全部刪除所有的安裝文件夾,從不同的應(yīng)用市場(chǎng)下載進(jìn)行安裝測(cè)試,比如測(cè)試小米市場(chǎng),華為市場(chǎng),應(yīng)用寶,安卓市場(chǎng),安智市場(chǎng)的安裝測(cè)試。
3.軟件升級(jí)測(cè)試
當(dāng)客戶端有新版本時(shí),是否有更新提示,當(dāng)版本為非強(qiáng)制升級(jí)版時(shí),用戶可以取消更新,老版本能正常使用,用戶在下次啟動(dòng)app時(shí),仍能出現(xiàn)更新提示;當(dāng)版本為強(qiáng)制升級(jí)版時(shí),當(dāng)給出強(qiáng)制更新后用戶沒(méi)有做更新時(shí),退出客戶端,下次啟動(dòng)app時(shí),仍出現(xiàn)強(qiáng)制升級(jí)提示,當(dāng)然現(xiàn)在強(qiáng)更已經(jīng)很少出現(xiàn)了。檢查更新后各個(gè)功能是否能正常使用;在線跨版本升級(jí)后能否正常使用,當(dāng)然現(xiàn)在主流的安裝更新方式開(kāi)始向熱更新熱部署方式轉(zhuǎn)變,就是在用戶不需要手動(dòng)更新的情況下,完成版本的靜默更新,這個(gè)技術(shù)是有難度的,需要看公司中程序員的技術(shù)能力還有就是是否有這樣的產(chǎn)品需求。
4.登錄測(cè)試
對(duì)于登錄測(cè)試,基本上每一款app都有登錄注冊(cè)功能,所以在測(cè)試App的時(shí)候,登錄測(cè)試是必不可少的一項(xiàng)。
我們做登錄測(cè)試的時(shí)候,往往包含這么些項(xiàng),登錄用戶名和密碼錯(cuò)誤時(shí),界面有提示信息,用戶主動(dòng)退出登陸后,下次進(jìn)入app時(shí),應(yīng)該進(jìn)入登陸界面,密碼更改后,登錄時(shí)是否做到了有效數(shù)據(jù)的校驗(yàn),對(duì)于未登錄狀態(tài)時(shí),一些頁(yè)面的操作,是否做了控制,切換賬號(hào)登錄,檢驗(yàn)登錄的信息是否做到及時(shí)更新,對(duì)于多個(gè)端(web、iso、android等)進(jìn)行操作時(shí),確保數(shù)據(jù)庫(kù)操作無(wú)誤,且每個(gè)端可以及時(shí)看到數(shù)據(jù)的更新,一個(gè)賬號(hào)只允許一臺(tái)機(jī)器登陸的軟件,需要賬號(hào)登錄多個(gè)手機(jī)時(shí),是否將原用戶踢下線,且能夠給出提示信息,用戶登錄狀態(tài)太久,session會(huì)過(guò)期,會(huì)出現(xiàn)“雖然是登錄狀態(tài),系統(tǒng)會(huì)提示用戶沒(méi)有登陸”
5.安全性測(cè)試——權(quán)限測(cè)試
對(duì)于手機(jī)權(quán)限,如果我們是剛開(kāi)發(fā)不知名的app,權(quán)限這塊盡量少一些,這些權(quán)限在安裝的時(shí)候都必須用戶同意。在Android 6.0之后,權(quán)限需要?jiǎng)討B(tài)的申請(qǐng),我們測(cè)試的時(shí)候,需要測(cè)試在使用到這些權(quán)限的時(shí)候,程序員是否做邏輯判斷,用戶同意權(quán)限應(yīng)該怎么操作,不同意權(quán)限又應(yīng)該怎么操作。
6.消息推送測(cè)試
消息推送,是移動(dòng)端的一大特色。我就說(shuō)一下消息推送我們所做的這些方面吧,
未鎖屏?xí)r,應(yīng)用后臺(tái)運(yùn)行,消息推送是否可正常接收,未鎖屏?xí)r,APP客戶端使用過(guò)程中,可以收到消息提醒,且點(diǎn)擊可查看。
鎖屏?xí)r,手機(jī)消息欄是否可以接收到消息提醒。且點(diǎn)擊可查看。點(diǎn)擊后消息欄中消失。
精準(zhǔn)推送
當(dāng)推送消息是針對(duì)登錄用戶的時(shí)候,需要檢查收到的push與用戶身份是否相符,沒(méi)有錯(cuò)誤的將其他人的消息推送過(guò)來(lái)
push推送消息是是否能有針對(duì)性的推送,如相應(yīng)內(nèi)容推送給相應(yīng)用戶(精準(zhǔn)推送)
退出登錄后,是否接受push推送(根據(jù)需求來(lái))
7.前后臺(tái)切換測(cè)試
APP切換到后臺(tái),再回到APP,檢查是否停留在上一次操作界面;檢查功能及應(yīng)用狀態(tài)是否正常;程序是否崩潰,功能狀態(tài)是否正常,尤其是對(duì)于從后臺(tái)切換回前臺(tái)數(shù)據(jù)有自動(dòng)更新的時(shí)候
手機(jī)鎖屏解屏后進(jìn)入app注意是否會(huì)崩潰,功能狀態(tài)是否正常
當(dāng)APP使用過(guò)程中有電話進(jìn)來(lái)中斷后再切換到APP,功能狀態(tài)是否正常
當(dāng)關(guān)閉APP進(jìn)程后,在開(kāi)啟APP,APP能否正常啟動(dòng)
對(duì)于有數(shù)據(jù)交換的頁(yè)面,尤其是有視頻圖片之類的頁(yè)面,每個(gè)頁(yè)面都必須要進(jìn)行前后臺(tái)切換、鎖屏的測(cè)試,這種頁(yè)面最容易出現(xiàn)崩潰
8.UI測(cè)試(界面測(cè)試)
確保產(chǎn)品UI符合產(chǎn)品經(jīng)理制定的原型圖與效果圖
一般涉及界面(如菜單、對(duì)話框、窗口和其他可視控件)布局、風(fēng)格、文字是否正確,頁(yè)面是否美觀,操作是否友好。
如:安裝app后的加載頁(yè)顯示,分享頁(yè)面的產(chǎn)品logo顯示
9.兼容性測(cè)試
我再說(shuō)一下兼容性測(cè)試吧,兼容性測(cè)試主要考慮手機(jī)的版本,型號(hào),分辨率,就像我說(shuō)的,現(xiàn)在手機(jī)碎片化比較嚴(yán)重,各個(gè)版本,比如Android,從Android4.0到Android10.0的版本它是不一樣的,然后現(xiàn)在各大手機(jī)廠商像華為,三星,小米,錘子,魅族,vivo這些廠商都修改android源代碼,也是給我們?cè)黾雍秃枚喙ぷ髁?#xff0c;好多時(shí)候開(kāi)發(fā)的軟件在三星上沒(méi)問(wèn)題,但是華為,小米就不行。還有手機(jī)分辨率,現(xiàn)在主流的可能是19201080,但是還有好多其他分辨率,比如7201280,還有一些更大分辨率的手機(jī),都要考慮這些分辨率的兼容,不然用戶視覺(jué)體驗(yàn)就不好。
兼容測(cè)試,公司中會(huì)買(mǎi)好多測(cè)試機(jī)來(lái)太讓我們進(jìn)行測(cè)試,一般是不同廠商的手機(jī),當(dāng)然還有第三方云測(cè)平臺(tái),比如testin還有騰訊wetest,就可以做兼容性測(cè)試??梢砸淮涡詼y(cè)試100臺(tái)測(cè)試機(jī),同時(shí)會(huì)有相應(yīng)的兼容報(bào)告,bug報(bào)告。
對(duì)于IOS,ISO版本有7.1.2、8.3、9.1等;能否適配各種屏幕尺寸。
10.網(wǎng)絡(luò)環(huán)境測(cè)試
測(cè)試2G、3G、4G、wifi、有網(wǎng)、無(wú)/網(wǎng)、弱網(wǎng)情況下應(yīng)用的運(yùn)行
網(wǎng)絡(luò)不好時(shí),提交數(shù)據(jù)是否一直處理提交中,是否會(huì)有延遲,數(shù)據(jù)交換失敗是否會(huì)有提醒
有網(wǎng)到無(wú)網(wǎng)再到有網(wǎng)環(huán)境時(shí),數(shù)據(jù)是否可以自動(dòng)恢復(fù),正常加載
無(wú)網(wǎng)絡(luò)時(shí),各種提示信息是否友好,數(shù)據(jù)本地化是否正確(比如提示當(dāng)前已斷開(kāi)網(wǎng)絡(luò),請(qǐng)檢查網(wǎng)絡(luò)設(shè)置;還有從wifi環(huán)境切換到4G環(huán)境提示是否啟用4G網(wǎng)絡(luò),會(huì)產(chǎn)生扣費(fèi)。
11.性能測(cè)試
對(duì)于性能測(cè)試,(eclipse和Android studio中本身有檢測(cè)cpu和內(nèi)存的工具,也有檢測(cè)手機(jī)內(nèi)存泄漏的工具)靠工具來(lái)測(cè)試手機(jī)cpu占用,內(nèi)存占用,電池溫度等,以及測(cè)試我們的app在后臺(tái)持續(xù)運(yùn)行的流量消耗和電量消耗問(wèn)題。
12.mokey測(cè)試
對(duì)于手機(jī)測(cè)試,除了我們一些常規(guī)的功能測(cè)試,我們還會(huì)做穩(wěn)定性測(cè)試,比如對(duì)于Android手機(jī),我會(huì)使用adb指令進(jìn)行一些相應(yīng)的操作,比如通過(guò)adb查看設(shè)置,進(jìn)入設(shè)備,抓取log,我們測(cè)試的時(shí)候,會(huì)使用adb logcat所抓出來(lái)的log日志存到電腦,發(fā)給開(kāi)發(fā),方便他們快速解決bug。
另外,我還會(huì)使用monkey對(duì)app進(jìn)行測(cè)試,可以使用monkey對(duì)app做穩(wěn)定性測(cè)試,主要就是測(cè)試操作app的時(shí)候,程序是否會(huì)崩潰。
我們使用adb shell monkey 指定對(duì)應(yīng)的app,執(zhí)行要測(cè)試的次數(shù),指定要觸摸的比率,超時(shí)時(shí)間和忽略崩潰信息,就可以執(zhí)行測(cè)試,將測(cè)試log存到某個(gè)位置,然后把測(cè)試出的bug 日志發(fā)送給開(kāi)發(fā)。300000
我就簡(jiǎn)單的說(shuō)一下測(cè)試的指令吧,比如我上邊所說(shuō)的邏輯,我們用 adb shell mokey -p 指定要測(cè)試的包名 --ignore-crashs 忽略崩潰 --ignore-timeout 忽略超時(shí) --throttle 38指定延遲時(shí)間毫秒 -s 指定測(cè)試種子 指定測(cè)試次數(shù),然后將文件 >輸出到磁盤(pán)中。
二:Android介紹
1.android介紹
Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。尚未有統(tǒng)一中文名稱,中國(guó)大陸地區(qū)較多人使用“安卓”。
2.android版本
Android在正式發(fā)行之前,最開(kāi)始擁有兩個(gè)內(nèi)部測(cè)試版本,并且以著名的機(jī)器人名稱來(lái)對(duì)其進(jìn)行命名,它們分別是:阿童木(AndroidBeta),發(fā)條機(jī)器人(Android 1.0)。后來(lái)由于涉及到版權(quán)問(wèn)題,谷歌將其命名規(guī)則變更為用甜點(diǎn)作為它們系統(tǒng)版本的代號(hào)的命名方法。甜點(diǎn)命名法開(kāi)始于Android 1.5發(fā)布的時(shí)候。作為每個(gè)版本代表的甜點(diǎn)的尺寸越變?cè)酱?#xff0c;然后按照26個(gè)字母數(shù)序:市場(chǎng)上最常見(jiàn)的版本andorid6.0至andorid10.0
3.android架構(gòu)
Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。
從架構(gòu)圖看,Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層
4.Android之四大組件
Android四大組件分別為activity、service、content provider、broadcast receiver。
參考: https://blog.csdn.net/shenggaofei/article/details/52450668
三:ADB命令
1.ADB介紹
ADB全稱Android Debug Bridge, 是android sdk里的一個(gè)工具, 用這個(gè)工具可以直接操作管理 android模擬器或者真實(shí)的andriod設(shè)備(如G1手機(jī)) 它的主要功能有: * 運(yùn)行設(shè)備的shell(命令行) * 管理模擬器或設(shè)備的端口映射 * 計(jì)算機(jī)和設(shè)備之間上傳/下載文件 * 將本地apk軟件安裝至模擬器或android設(shè)備
2.配置ADB環(huán)境變量
1.在系統(tǒng)變量中新建ANDROID_HOME變量,賦值路徑(E:\androidSDK)
2.在系統(tǒng)變量path中添加%ANDROID_HOME%\platform-tools
3.如圖顯示配置成功
3. ADB常用指令
1.查看移動(dòng)端設(shè)備
adb devices(描述:這個(gè)命令是查看當(dāng)前連接的設(shè)備, 連接到計(jì)算機(jī)的android設(shè)備或者模擬器將會(huì)列出顯示)
Offline(不能調(diào)試僅是連接,原因很可能是adb與安卓系統(tǒng)不匹配) unauthorized(連接后不能調(diào)試,原因是沒(méi)有在手機(jī)上同意調(diào)試) device(正常狀態(tài)可調(diào)試)
2.開(kāi)啟服務(wù)
adb start-server
3.關(guān)閉服務(wù)
adb kill-server
4.安裝軟件到手機(jī)
adb install apk路徑
5.覆蓋安裝
adb install -r apk路徑(-r 代表如果apk已安裝,重新安裝apk并保留數(shù)據(jù)和緩存文件)
6.查看(系統(tǒng))包名
系統(tǒng)應(yīng)用:adb shell pm list packages –s
7.查看(第三方)包名
第三方應(yīng)用:adb shell pm list packages -3
8.查看(全部)包名
adb shell pm list packages
9.卸載軟件
adb uninstall 軟件包名
10.將電腦文件傳輸?shù)揭苿?dòng)端
adb push 電腦路徑 移動(dòng)端路徑
11.將移動(dòng)端文件傳輸?shù)诫娔X
adb pull 移動(dòng)端路徑 電腦路徑
12.截屏
adb shell screencap -p 截圖文件路徑
13.查看手機(jī)CPU情況
adb shell dumpsys cpuinfo
14.查看手機(jī)內(nèi)存使用情況
adb shell dumpsys meminfo
15.顯示磁盤(pán)使用信息
adb shell dumpsys diskstats
16.查看電池狀態(tài)
adb shell dumpsys battery
17.查看手機(jī)日志
adb logcat
adb logcat 命令格式 : adb logcat [選項(xiàng)] [過(guò)濾項(xiàng)], 其中 選項(xiàng) 和 過(guò)濾項(xiàng) 在 中括號(hào) [] 中, 說(shuō)明這是可選的; ">"輸出 : “>” 后面跟著要輸出的日志文件, 可以將 logcat 日志輸出到文件中, 使用adb logcat > log 命令(adb logcat >C:\log\1.txt)
打印log日志到本地
adb logcat >本地路徑
打印帶時(shí)間的log日志到本地
adb logcat -v time >本地路徑
Android 的日志分為如下幾個(gè)級(jí)別:
V —— Verbose(最低,輸出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高)
過(guò)濾指定等級(jí)日志:按某級(jí)別過(guò)濾日志則會(huì)將該級(jí)別及以上的日志輸出。 比如,命令:adb logcat *:W 將 Warning、Error、Fatal 和 Silent 日志輸出 顯示所有優(yōu)先級(jí)大于等于“warning”的日志
打印指定等級(jí)log日志到本地
adb logcat *:W >本地路徑
輸出最近的日志
adb logcat -t 5 輸出最近5行的數(shù)據(jù)
總結(jié)
- 上一篇: Python+Selenium+PO模型
- 下一篇: Appium进行脚本录制操作模拟器