一、 手機(jī)測(cè)試概念
傳統(tǒng)手機(jī)測(cè)試 VS 手機(jī)應(yīng)用軟件測(cè)試
- 傳統(tǒng)手機(jī)測(cè)試:指測(cè)試手機(jī)本身比如抗壓,抗摔,抗疲勞,抗低溫高溫等。也包括手機(jī)本身功能、性能等測(cè)試。
- 手機(jī)應(yīng)用軟件測(cè)試 C/S Client/Server
手機(jī)應(yīng)用軟件是基于手機(jī)操作系統(tǒng)之上開(kāi)發(fā)出來(lái)的軟件,做這樣的測(cè)試就叫做手機(jī)應(yīng)用軟件測(cè)試。
二、手機(jī)端常規(guī)測(cè)試
2.1.What
2.1.1.介紹手機(jī)測(cè)試的概念架構(gòu)
對(duì)于手機(jī)端測(cè)試,按照平臺(tái)來(lái)分,分為Android和IOS兩大主流系統(tǒng)
- 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ì)少一些。
- Android手機(jī)長(zhǎng)按home鍵,會(huì)呼出應(yīng)用列表和切換應(yīng)用,右滑擇會(huì)終止應(yīng)用。
還有分辨率測(cè)試,Android手機(jī)分辨率有20多種,IOS較少一些 - 再就是手機(jī)操作系統(tǒng),Android系統(tǒng)太多了,IOS較少,但是升級(jí)之后不能夠降級(jí),不過(guò)呢,發(fā)現(xiàn)了最近ios中boss直聘的一個(gè)bug,是有關(guān)于Boss直聘強(qiáng)更的一個(gè)bug,當(dāng)我們點(diǎn)擊手機(jī)APP端 Boss直聘 進(jìn)入主頁(yè)面彈出提示框“新增郵箱上傳附件簡(jiǎn)歷功能” 彈窗中有立即升級(jí)的鏈接,點(diǎn)擊別的區(qū)域沒(méi)有反應(yīng);必須點(diǎn)擊“立即升級(jí)”才會(huì)跳轉(zhuǎn)到“App Store”若不升級(jí),重新切換回Boss直聘界面,依舊提示“立即升級(jí)”全部退出依然如此。
- 按照目前技術(shù)架構(gòu)的話,現(xiàn)在有一些原生的app架構(gòu),類似于Client Server架構(gòu),也有基于Html5的app,類似于pc機(jī)的BS(Broswer server)架構(gòu)。手機(jī)測(cè)試和pc機(jī)類似,又有一些不同的地方。
- 當(dāng)然除了手機(jī),現(xiàn)在還有好多使用Android系統(tǒng),比如酒店點(diǎn)餐的平板,銀行對(duì)公或者對(duì)個(gè)人業(yè)務(wù)的業(yè)務(wù)平臺(tái),還有一些智能的穿戴設(shè)備,小米的手環(huán),google 聯(lián)想的智能眼鏡,智能家居,電視盒子,這些都是在使用android系統(tǒng),我之前最早的時(shí)候,就要測(cè)試過(guò)一個(gè)智能家居設(shè)備,測(cè)試的時(shí)候需要考慮藍(lán)牙,wifi連接傳輸這塊,也有好多要測(cè)試的內(nèi)容。
2.2.How
1.1.2. 功能測(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)的需求文檔和UI所設(shè)計(jì)的產(chǎn)品效果圖,我們做邏輯功能測(cè)試,就是根據(jù)這些資料,當(dāng)然也根據(jù)我們正常人的邏輯思維進(jìn)行邏輯功能測(cè)試,在做邏輯功能測(cè)試的時(shí)候,我們要測(cè)試主頁(yè)面,我的頁(yè)面,商城頁(yè)面這些功能是否合理。
1.1.3.安裝與卸載測(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è)試。
1.1.4. 軟件升級(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)品需求。
1.1.5. 登錄測(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)有登陸”
1.1.6.安全性測(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)該怎么操作。
1.1.7.消息推送測(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))
1.1.8.前后臺(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)崩潰
1.1.9.UI測(cè)試(界面測(cè)試)
確保產(chǎn)品UI符合產(chǎn)品經(jīng)理制定的原型圖與效果圖
一般涉及界面(如菜單、對(duì)話框、窗口和其他可視控件)布局、風(fēng)格、文字是否正確,頁(yè)面是否美觀,操作是否友好。
如:安裝app后的加載頁(yè)顯示,分享頁(yè)面的產(chǎn)品logo顯示
1.1.10.兼容性測(cè)試
我再說(shuō)一下兼容性測(cè)試吧,兼容性測(cè)試主要考慮手機(jī)的版本,型號(hào),分辨率,就像我說(shuō)的,現(xiàn)在手機(jī)碎片化比較嚴(yán)重,各個(gè)版本,比如Android,從Android4.0到Android8.0的版本它是不一樣的,然后現(xiàn)在各大手機(jī)廠商像華為,三星,小米,錘子,魅族,vivo這些廠商都修改android源代碼,也是給我們?cè)黾雍秃枚喙ぷ髁浚枚鄷r(shí)候開(kāi)發(fā)的軟件在三星上沒(méi)問(wèn)題,但是華為,小米就不行。還有手機(jī)分辨率,現(xiàn)在主流的可能是19201080,但是還有好多其他分辨率,比如7201280,還有一些更大分辨率的手機(jī),都要考慮這些分辨率的兼容,不然用戶視覺(jué)體驗(yàn)就不好。
兼容測(cè)試,公司中會(huì)買好多測(cè)試機(jī)來(lái)太讓我們進(jìn)行測(cè)試,一般是不同廠商的手機(jī),當(dāng)然還有第三方云測(cè)平臺(tái),比如testin還有騰訊wetest,就可以做兼容性測(cè)試。可以一次性測(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等;能否適配各種屏幕尺寸。
1.1.11.網(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)。
1.1.12.mokey測(cè)試 (monkey壓力測(cè)試 測(cè)試為1000-2000)
對(duì)于手機(jī)測(cè)試,除了我們一些常規(guī)的功能測(cè)試,我們還會(huì)做壓力測(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做壓力測(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ù),然后將文件 >輸出到磁盤中。
1.1.13.性能測(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)題。
三、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ū)較多人使用“安卓”或“安致”。
Android操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā),主要支持手機(jī)。2005年8月由Google收購(gòu)注資。2007年11月,Google與84家硬件制造商、軟件開(kāi)發(fā)商及電信營(yíng)運(yùn)商組建開(kāi)放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開(kāi)源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于2008年10月。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011年第一季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。 2013年的第四季度,Android平臺(tái)手機(jī)的全球市場(chǎng)份額已經(jīng)達(dá)到78.1%。 [1] 2013年09月24日谷歌開(kāi)發(fā)的操作系統(tǒng)Android在迎來(lái)了5歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺(tái)。
安卓版本:
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è)酱螅缓蟀凑?6個(gè)字母數(shù)序:紙杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松餅(Android 2.0/2.1),凍酸奶(Android 2.2),姜餅(Android 2.3),蜂巢(Android 3.0),冰激凌三明治(Android 4.0),果凍豆(Jelly Bean,Android4.1和Android 4.2),奇巧(KitKat,Android 4.4),棒棒糖(Lollipop,Android 5.0),棉花糖(Marshmallow,Android 6.0),牛軋?zhí)牵∟ougat,Android 7.0),奧利奧(Oreo,Android 8.0),餡餅(Pie,Android 9.0),Q(未命名,Android10.0),R(未命名,Android11.0)
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)核層
3.1. Android SDK(Software Development Kit)的安裝和配置
Android SDK,即Android Software Development Kit,軟件開(kāi)發(fā)工具包。
它提供了在Windows/Linux/Mac平臺(tái)上開(kāi)發(fā)Android應(yīng)用的開(kāi)發(fā)組件。包含了在Android平臺(tái)上開(kāi)發(fā)移動(dòng)應(yīng)用程序的各種工具集。
3.2.安裝java環(huán)境
3.3.啟動(dòng)配置好SDK的Android版本eclipse Android Studio(類似Idea)
3.3.1. 檢查是否成功:
cmd → java -version
3.3.2. Android studio安裝
3.3.3. 創(chuàng)建虛擬機(jī)
Android App開(kāi)發(fā)一般需要模擬器來(lái)測(cè)試程序的正確性
Android Virtual Device,就是Android運(yùn)行的虛擬設(shè)備,是Android的模擬器識(shí)別。建立的Android App要運(yùn)行,必須創(chuàng)建AVD,每個(gè)AVD上可以配置很多的運(yùn)行項(xiàng)目。
簡(jiǎn)而言之:AVD即用于Android開(kāi)發(fā)調(diào)試的模擬機(jī)。
AVD name:填寫的虛擬機(jī)名稱,純英文和數(shù)字組成。
- Device:設(shè)定模擬的設(shè)備,一般選擇手機(jī)型號(hào):3.2QVGA(ADP2)(320480: mdpi)。
- Target:安裝Android的版本,目前4.0是主流,即可選Android4.0.3 API 15。
- CPI/ABi:模擬的CPU型號(hào),這里的ARM是手機(jī)的CPU型號(hào)。
- Keyboard:務(wù)必勾選“Hardware keyboard present”。
- Skin:務(wù)必勾選“Display a skin with hardware controls”。
- Front camera/Back camera:是否模擬前置和后置攝像頭,裝有Cam的讀者可以考慮。
- RAM:設(shè)置模擬器內(nèi)存,一般在512~1024M。 VM Heap:每一個(gè)應(yīng)用的最大內(nèi)存空間分配,默認(rèn)即可。
- SD Card:選在size上,這個(gè)就是在默認(rèn)目錄里自動(dòng)建立一個(gè)模擬SD卡的文件,SD卡的大小隨意,也可以不填,不填代表不適用SD卡。
3.3.4. 啟動(dòng)虛擬機(jī)
四、ADB
4.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è)備
4.2.配置ADB環(huán)境變量
打開(kāi):adt-bundle-windows-x86_64_20140101文件
找到adb.exe所在路徑
配置ADB_HOME環(huán)境變量
參考java環(huán)境變量配置
顯示成功:
4.3.ADB常用指令
查看設(shè)備:adb devices
這個(gè)命令是查看當(dāng)前連接的設(shè)備, 連接到計(jì)算機(jī)的android設(shè)備或者模擬器將會(huì)列出顯示安裝軟件:adb install -r (APK路徑)
-r 代表如果apk已安裝,重新安裝apk并保留數(shù)據(jù)和緩存文件。apk路徑則可以直接將apk文件拖進(jìn)cmd窗口,記得加空格。卸載軟件
adb uninstall <軟件名>
adb uninstall -k <軟件名>
如果加 -k 參數(shù),為卸載軟件但是保留配置和緩存文件
問(wèn)程序員--com.example.test-
登錄設(shè)備shell
adb shell
adb shell <command命令>image這個(gè)命令將登錄設(shè)備的shell.
后面加<command命令>將是直接運(yùn)行設(shè)備命令, 相當(dāng)于執(zhí)行遠(yuǎn)程命令 -
查看手機(jī)內(nèi)存情況
adb shell dumpsys cpuinfoimage -
查看內(nèi)存情況
adb shell getprop | findstr dalvik 本機(jī)內(nèi)存的使用情況image -
查看應(yīng)用內(nèi)存使用情況
adb shell dumpsys meminfo +包名:應(yīng)用的內(nèi)存使用情況image -
列出手機(jī)裝的所有app的包名:
adb shell pm list packagesimage -
列出系統(tǒng)應(yīng)用的所有包名:
adb shell pm list packages -simage -
列出除了系統(tǒng)應(yīng)用的第三方應(yīng)用包名:
adb shell pm list packages -3image
4.4.adb logcat 查看手機(jī)日志
- adb logcat 命令格式 : adb logcat [選項(xiàng)] [過(guò)濾項(xiàng)], 其中 選項(xiàng) 和 過(guò)濾項(xiàng) 在 中括號(hào) [] 中, 說(shuō)明這是可選的;
- 在命令行中輸入 adb logcat --help 命令, 就可以顯示該命令的幫助信息;
- ">"輸出 : ">" 后面跟著要輸出的日志文件, 可以將 logcat 日志輸出到文件中, 使用adb logcat > log 命令
- 指定 logcat 的日志輸出格式 :
-- "-v"選項(xiàng) : 使用adb logcat -v time 命令, 可以查看日志的輸出時(shí)間; - "process"格式 : " 優(yōu)先級(jí) (進(jìn)程ID) : 日志信息 ", 使用adb logcat -v process 命令;
- 將手機(jī)日志輸出到本地文件中
adb logcat -v time process > C:/log/aa.txt - 有多臺(tái)設(shè)備是adb選擇設(shè)備
adb -s 設(shè)備名稱 logcat -v time process >C:/log/aa.txt - Android 的日志分為如下幾個(gè)級(jí)別:
V —— Verbose(最低,輸出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不輸出)
按某級(jí)別過(guò)濾日志則會(huì)將該級(jí)別及以上的日志輸出。
比如,命令:adb logcat *:W 將 Warning、Error、Fatal 和 Silent 日志輸出
顯示所有優(yōu)先級(jí)大于等于“warning”的日志
五、APK牢固性(加密)
應(yīng)用加固
防篡改:通過(guò)完整性保護(hù)和簽名校驗(yàn)保護(hù),能有效避免應(yīng)用被二次打包,杜絕盜版應(yīng)用的產(chǎn)生;
防逆向:通過(guò)對(duì)代碼進(jìn)行隱藏以及加密處理,使攻擊者無(wú)法對(duì)二進(jìn)制代碼進(jìn)行反編譯,獲得源代碼或代碼運(yùn)行邏輯;
防調(diào)試:通過(guò)反調(diào)試技術(shù),使攻擊者無(wú)法調(diào)試原生代碼或Java代碼,阻止攻擊者獲取代碼里的敏感數(shù)據(jù)。
網(wǎng)上有很多Apk加固的第三方平臺(tái),最有名的應(yīng)當(dāng)屬于:愛(ài)加密和梆梆加固了。其實(shí)加固說(shuō)的簡(jiǎn)單點(diǎn)就是對(duì)源Apk進(jìn)行加密,然后在套上一層殼即可
六、Monkey測(cè)試
6.1.參考資料
http://blog.csdn.net/jlminghui/article/details/38238443
6.2.Money介紹
顧名思義,Monkey就是猴子, Monkey測(cè)試,就像一只猴子, 在電腦面前,亂敲鍵盤在測(cè)試。
通過(guò)Monkey程序模擬用戶觸摸屏幕、滑動(dòng)Trackball、 按鍵等操作來(lái)對(duì)設(shè)備上的程序進(jìn)行壓力測(cè)試,檢測(cè)程序多久的時(shí)間會(huì)發(fā)生異常。
6.3.Monkey用來(lái)做什么
Monkey 主要用于Android 的壓力測(cè)試自動(dòng)的一個(gè)壓力測(cè)試小工具, 主要目的就是為了測(cè)試app 是否會(huì)Crash(崩潰)。
6.4. Monkey 前提條件
- 環(huán)境配置:把a(bǔ)db加入系統(tǒng)環(huán)境,手機(jī)開(kāi)啟開(kāi)發(fā)者模式
- 連接手機(jī),獲取測(cè)試的包名。獲取包名的方法
- Monkey編寫測(cè)試命令,并運(yùn)行。monkey操作命令
如果要提前中結(jié)束測(cè)試,中斷運(yùn)行中的monkey
CTRL+C
adb shell ps | grep monkey 返回進(jìn)程號(hào)
adb shell kill [剛才查到的進(jìn)程號(hào)]
6.5Monkey程序介紹
- Monkey程序由Android系統(tǒng)自帶,使用Java語(yǔ)言寫成,在Android文件系統(tǒng)中的存放路徑是: /system/framework/monkey.jar;
- Monkey.jar程序是由一個(gè)名為“monkey”的Shell腳本來(lái)啟動(dòng)執(zhí)行,shell腳本在Android文件系統(tǒng)中 的存放路徑是:/system/bin/monkey;
- Monkey 命令啟動(dòng)方式:
a)可以通過(guò)PC機(jī)CMD窗口中執(zhí)行: adb shell monkey {+命令參數(shù)}來(lái)進(jìn)行Monkey測(cè)試
b)在PC上adb shell 進(jìn)入Android系統(tǒng),通過(guò)執(zhí)行 monkey {+命令參數(shù)} 來(lái)進(jìn)行Monkey 測(cè)試
c ) 在Android機(jī)或者模擬器上直接執(zhí)行monkey 命令,可以在Android機(jī)上安裝Android終端模擬器
七、Monkey 命令 基本參數(shù)介紹
7.1.使用monkey測(cè)試手機(jī)所有程序
adb shell monkey 100 執(zhí)行monkey測(cè)試100次 針對(duì)rom測(cè)試或者
使用adb指令,安裝Login.apk
7.2.-p <允許的包名列表>
adb shell monkey -p com.example.login 100
用此參數(shù)指定一個(gè)或多個(gè)包。指定包之后,monkey將只允許系統(tǒng)啟動(dòng)指定的app。如果不指定包, monkey將允許系統(tǒng)啟動(dòng)設(shè)備中的所有app。
指定一個(gè)包:
7.3.顯示日志詳細(xì)程度
用于指定反饋信息級(jí)別(信息級(jí)別就是日志的詳細(xì)程度),總共分3個(gè)級(jí)別,分別對(duì)應(yīng)的參數(shù)如下 表所示:
Level 0 : adb shell monkey -p com.example.login -v 100 // 缺省值,僅提供啟動(dòng)提示、測(cè)試完成和最終結(jié)果等少量信息
Level 1 : adb shell monkey -p com.example.login -v -v 100 // 提供較為詳細(xì)的日志,包括每個(gè)發(fā)送到Activity的事件信息
Level 2 : adb shell monkey -p com.example.login -v -v -v 100 // 最詳細(xì)的日志,包括了測(cè)試中選中/未選中的Activity信息
7.4.Monkey日志分析
將log信息寫到文檔中
adb shell monkey 100 >c:/log/b.txt
正常情況, 如果Monkey測(cè)試順利執(zhí)行完成, 在log的最后, 會(huì)打印出當(dāng)前執(zhí)行事件的次數(shù)和所花費(fèi)的時(shí)間; // Monkey finished 代表執(zhí)行完成
隨機(jī)數(shù)種子
用亍指定偽隨機(jī)數(shù)生成器的seed值,如果seed相同,則兩次Monkey測(cè)試所產(chǎn)生的事件序列也相同的。 示例:
monkey測(cè)試1:adb shell monkey -p com.shjt.map –s 10 100
monkey測(cè)試2:adb shell monkey -p com.shjt.map –s 10 100
7.5.--throttle <毫秒>
用亍指定用戶操作(即事件)間的時(shí)延,單位是毫秒;如果不指定這個(gè)參數(shù),monkey會(huì)盡可能快的 生成和發(fā)送消息。
例:adb shell monkey -p com.example.login --throttle 300 100
表示執(zhí)行100個(gè)偽隨機(jī)用戶事件流,事件間隔為300毫秒。
注:一般設(shè)置為300毫秒,原因是實(shí)際用戶操作的最快300毫秒左右一個(gè)動(dòng)作事件。
7.6.--pct-touch <percent>
調(diào)整觸摸事件的百分比。(觸摸事件是指在屏幕中的一個(gè)down-up事件,即在屏幕某處按下并抬起的操作)
–pct-touch:觸摸事件。即在某一位置的Down-Up(手指的放下和抬起)事件。Down(ACTION_DOWN)和Up(ACTION_UP)的坐標(biāo)臨近,但并非相同。
如:adb shell monkey -pct-touch 67 -v 10
表示執(zhí)行10個(gè)偽隨機(jī)用戶事件流,并調(diào)整其中觸摸事件的百分比為67%。
注:此參數(shù)設(shè)置要適應(yīng)當(dāng)前被測(cè)應(yīng)用程序的操作,比如一個(gè)應(yīng)用80%的操作都是觸摸,那就可以將此參數(shù)的百分比設(shè)置成相應(yīng)較高的百分比。
7.7.--pct-motion <percent>
調(diào)整motion事件百分比。(motion事件是由屏幕上某處一個(gè)down事件、一系列偽隨機(jī)的移動(dòng)事件和一個(gè)up事件組成)
–pct-motion:動(dòng)作事件。以Down(ACTION_DOWN)開(kāi)始,Up(ACTION_UP)結(jié)尾,中間至少有一次Move(ACTION_MOVE)。
如:adb shell monkey -pct-motion 67 -v 10
表示執(zhí)行10個(gè)偽隨機(jī)用戶事件流,并調(diào)整其中動(dòng)作事件的百分比為67%。
注:這里的移動(dòng)是直線滑動(dòng)
7.8.--ignore-crashes
作用:通常,應(yīng)用發(fā)生崩潰或異常時(shí)Monkey會(huì)停止運(yùn)行。如果設(shè)置此項(xiàng),Monkey將繼續(xù)發(fā)送事件給系統(tǒng),直到事件計(jì)數(shù)完成。
正常操作,不忽略異常
忽略異常
7.9.--ignore-timeouts(ANR)
作用:通常,應(yīng)用程序發(fā)生任何超時(shí)錯(cuò)誤(如“Application Not responding”對(duì)話框)Monkey將停止運(yùn)行,設(shè)置此項(xiàng),Monkey將繼續(xù)發(fā)送事件給系統(tǒng),直到事件計(jì)數(shù)完成。
7.10.Monkey 實(shí)例
用monkey 命令 對(duì)登錄apk進(jìn)行 性能測(cè)試
monkey -p com.tencent.mtaexample -s 23 --throttle2000 --ignore-crashes --ignore-timeouts -v -v -v 100000>/data/local/tmp/log.txt 2>&1 &
- -p后面接著的對(duì)應(yīng)的包名,如果是整機(jī)測(cè)試,就不需要 -p package_name
- -s后面是對(duì)應(yīng)的種子數(shù),好像就是操作步驟,根據(jù)她們測(cè)試的經(jīng)驗(yàn),一般種子數(shù)在23,同步她們測(cè)試的結(jié)果,一般種子的個(gè)數(shù)固定為23,和她們選擇的操作步驟就是同步的。
- --ignore-crashes --ignore-timeouts 這里是在monkey測(cè)試的過(guò)程中遇到carash或者timeout的情況時(shí)忽略掉,一般不設(shè)置時(shí),出現(xiàn)carash或者timeout時(shí),Monkey測(cè)試會(huì)終止。這里是防止Monkey測(cè)試終止。
- -v 指的是Monkey測(cè)試時(shí)打印log級(jí)別。
- 100000 這里是指點(diǎn)擊的次數(shù),根據(jù)她們測(cè)試的經(jīng)驗(yàn),對(duì)于單個(gè)應(yīng)用程序這個(gè)次數(shù)設(shè)置在100000次就可以了;如果是整機(jī),一般設(shè)置在500000次。
/data/local/tmp/log.txt測(cè)試的log記錄在手機(jī)上/data/local/tmp/ 下面的log.txt里面,這個(gè)名字可以自己寫。- 2>&1 固定的寫法,這個(gè)也很重要,代表的意思是中間忽略的東東的日志一并輸入到指定的文件中。
- 最后單獨(dú)的一個(gè)"&" 是一旦Monkey測(cè)試開(kāi)始了,之后可以拔掉數(shù)據(jù)線,不會(huì)影響Monkey測(cè)試。
- 測(cè)試所有模塊 monkey -s 23 --ignore-crashes --ignore-timeouts -v-v -v 100000> /data/local/tmp/log.txt 2>&1 &
adb shell monkey -p com.example.login --ignore-crashes --ignore-timeouts --throttle 100 --pct-touch 50 --pct-motion 50 -v -v 1000 >c:\login\c.txt
7.11.Monkey異常分析
一般我們可以一次發(fā)送5萬(wàn)次隨機(jī)事件的請(qǐng)求,每個(gè)請(qǐng)求之間的間隔為150毫秒,測(cè)試大約會(huì)進(jìn)行40min,完成以后就可以查看日志。
日志中可能的錯(cuò)誤:
1.程序異常退出,uncausedexception (ctrl+f搜索‘Fatal’)
2.程序強(qiáng)制關(guān)閉,F(xiàn)orceClosed (簡(jiǎn)稱FC) (同上)
3.程序無(wú)響應(yīng),ApplicationNo Response(ctrl+f搜索‘ANR ’,加空格是為了屏蔽掉一些無(wú)效信息)
4.手動(dòng)生成。
Monkey 執(zhí)行中斷, 在log最后也能看到當(dāng)前執(zhí)行次數(shù)
7.12.monkey事件百分比
首先注意一點(diǎn),這個(gè)Event percentages在不同版本的SDK版本中順序可能會(huì)不一樣。
下列中monkey源代碼是從android4.4.2SDK中反編譯出來(lái)的
由上圖可以看出
Event percentages:
0:--pct-touch//touch
events percentage觸摸事件百分比(觸摸事件是一個(gè)在屏幕單一位置的按下-抬起事件)
1:--pct-motion//motion
events percentage手勢(shì)事件百分比(手勢(shì)事件是由一個(gè)在屏幕某處的按下事件、一系列的偽隨機(jī)移動(dòng)、一個(gè)抬起事件組成)即一個(gè)滑動(dòng)操作,但是是直線的,不能拐彎
2:--pct-pinchzoom//pinch
zoom events percentage二指縮放百分比,即智能機(jī)上的放大縮小手勢(shì)操作
3:--pct-trackball//trackball 即單純的Move(ACTION_MOVE)
events percentage軌跡球事件百分比(軌跡球事件包括一個(gè)或多個(gè)隨機(jī)移動(dòng),有時(shí)還伴有點(diǎn)擊。軌跡球現(xiàn)在智能手機(jī)上已經(jīng)沒(méi)有了,就是類似手柄的方向鍵一樣)
4:--pct-rotation//screen
rotation events percentage屏幕旋轉(zhuǎn)百分比,橫屏豎屏
5:--pct-nav//nav 基本導(dǎo)航事件。即來(lái)自于方向輸入設(shè)備的上下左右操作。
events percentage”基本”導(dǎo)航事件百分比(導(dǎo)航事件包括上下左右,如方向輸入設(shè)備的輸入)老手機(jī)的上下左右鍵,智能機(jī)上沒(méi)有
6:--pct-majornav//major 即Navigation Bar的確認(rèn),菜單,返回鍵等
nav events percentage”主要”導(dǎo)航事件百分比(這些導(dǎo)航事件通常會(huì)引發(fā)UI的事件,例如5-way pad的中間鍵、回退鍵、菜單鍵)
7:--pct-syskeys//system(key)
operations percentage”系統(tǒng)”按鈕事件百分比(這些按鈕一般專供系統(tǒng)使用,如Home, Back, Start Call, End Call,音量控制)
8:--pct-appswitch//app
switch events percentage啟動(dòng)activity事件百分比。在隨機(jī)的間隔里,Monkey會(huì)執(zhí)行一個(gè)startActivity()調(diào)用,作為最大程度覆蓋包中全部Activity的一種方法
9:--pct-flip//keyboard
flip percentage鍵盤輕彈百分比,如點(diǎn)擊輸入框,鍵盤彈起,點(diǎn)擊輸入框以外區(qū)域,鍵盤收回
10:--pct-anyevent//anyevents 該事件可能包含其他上述事件。
percentage其他類型事件百分比。包括了其他所有的類型事件,如按鍵、其他不常用的設(shè)備上的按鈕等等。
八、手機(jī)兼容性測(cè)試
Android App兼容性測(cè)試,是一個(gè)比較重要的App評(píng)價(jià)內(nèi)容,
說(shuō)到測(cè)試階段,兼容性測(cè)試主要是對(duì)App在各類機(jī)型上的兼容、適配等情況進(jìn)行測(cè)試。搞清楚這一階段的測(cè)試重點(diǎn)后,因此,Android App在進(jìn)行兼容性測(cè)試前,一定要做好其前序測(cè)試內(nèi)容,否則兼容性測(cè)試效果將會(huì)較差。
8.1.機(jī)型配置問(wèn)題。
Android兼容測(cè)試一定要做到寬范圍覆蓋,如果做不到這個(gè),那么就違背了兼容性測(cè)試的目標(biāo)——測(cè)試App在各類機(jī)型、系統(tǒng)上的運(yùn)行是否兼容、適配。
因此,兼容性測(cè)試必須要在各個(gè)機(jī)型、系統(tǒng)上對(duì)App進(jìn)行運(yùn)行、測(cè)試,查看相關(guān)UI是否適配、功能是否正常。所以,必須要為兼容性測(cè)試配備盡可能多的機(jī)型。這是不是意味著,你的公司要去購(gòu)置各類機(jī)型設(shè)備?當(dāng)然不是。對(duì)于一般的公司或者開(kāi)發(fā)者,這將會(huì)是一大筆開(kāi)銷,為了節(jié)約資金而造成進(jìn)行覆蓋率較低的話,則失去了兼容性測(cè)試的意義。另外,這也是沒(méi)必要的,因?yàn)橥憔鸵粋€(gè)或兩三個(gè)App,為了這少量App測(cè)試,而去購(gòu)置如此大量的設(shè)備,無(wú)疑是一種資源浪費(fèi)。除此,還有一個(gè)原因,將在兼容性測(cè)試如何展開(kāi)里去說(shuō)。除此,機(jī)型量的多少也是一個(gè)權(quán)衡的過(guò)程,目前,通用的兼容性測(cè)試一般覆蓋Top100-300的機(jī)型,對(duì)于實(shí)在是小量機(jī)型或者老舊機(jī)型,用戶量非常小,在一定程度上,是否需要覆蓋則需要權(quán)衡,總的來(lái)說(shuō),Top排名的手機(jī)基本足夠。
8.2.兼容性如何展開(kāi)?
這是一個(gè)經(jīng)驗(yàn)性的過(guò)程,可以去借鑒大型互聯(lián)網(wǎng)公司的成熟App的測(cè)試方法。目前,無(wú)論是國(guó)際知名App,還是國(guó)內(nèi)知名App,谷歌、Facebook,BAT等,他們都有大量的App對(duì)外推出,對(duì)于App兼容性要求非常高,因此,他們的做法是非常值得借鑒的。這些公司的兼容性測(cè)試,都有一個(gè)相同的解決方案,那就是自動(dòng)化測(cè)試框架與平臺(tái)的實(shí)現(xiàn)。通過(guò)瀏覽上述公司在各種大會(huì)公布的內(nèi)容,或者通過(guò)論壇知識(shí)分享,都能看到,他們不僅有自己的測(cè)試實(shí)驗(yàn)室,擁有大量的手機(jī),除此,還有一整套的自動(dòng)化測(cè)試平臺(tái),來(lái)完成兼容性測(cè)試。
8.3.有哪些好用的App云測(cè)試平臺(tái)?
目前對(duì)移動(dòng)App的測(cè)試主要指的是下面幾部分:
兼容性測(cè)試——App對(duì)不同手機(jī)、操作系統(tǒng)版本的兼容性測(cè)試,包括安裝、啟動(dòng)、卸載等。
功能測(cè)試——遍歷應(yīng)用的每一個(gè)角落,查看應(yīng)用的功能、邏輯是否正常,完整。
性能測(cè)試——應(yīng)用的性能怎樣,如啟動(dòng)時(shí)間、反應(yīng)時(shí)間、CPU占用率,內(nèi)存占用率等。
穩(wěn)定性測(cè)試——在一定時(shí)間內(nèi)對(duì)App進(jìn)行持續(xù)地測(cè)試,測(cè)試App運(yùn)行的穩(wěn)定性。
網(wǎng)絡(luò)場(chǎng)景測(cè)試——測(cè)試不同網(wǎng)絡(luò)環(huán)境中App的運(yùn)行狀況,如2G&3G,弱網(wǎng)絡(luò)等。
以下是國(guó)內(nèi)幾家主要的云測(cè)試平臺(tái):
Testin:Testin云測(cè)|全球領(lǐng)先的App及手游測(cè)試平臺(tái)
Testin是國(guó)內(nèi)較早涉足云測(cè)試領(lǐng)域的公司之一。Testin在云端部署了300多款1000多部測(cè)試終端,終端種類及數(shù)量都比較全面。支持Android與iOS系統(tǒng)。但目前僅少部分服務(wù)為免費(fèi),絕大多數(shù)服務(wù)為收費(fèi)項(xiàng)目,故而使用成本較高,具體收費(fèi)情況請(qǐng)查看官網(wǎng)的介紹。
騰訊優(yōu)測(cè):優(yōu)測(cè)網(wǎng)-讓測(cè)試更簡(jiǎn)單
騰訊優(yōu)測(cè)是騰訊旗下的云測(cè)試服務(wù)平臺(tái),擁有超過(guò)1000款測(cè)試終端,機(jī)型數(shù)量龐大。但僅支持Android,暫不支持iOS系統(tǒng)。提供兼容性測(cè)試服務(wù),不提供性能測(cè)試、功能測(cè)試及穩(wěn)定性測(cè)試服務(wù)。另外,騰訊優(yōu)測(cè)還提供“云手機(jī)”服務(wù),開(kāi)發(fā)者可以遠(yuǎn)程控制測(cè)試終端,實(shí)時(shí)查看App安裝、運(yùn)行效果。優(yōu)測(cè)目前的功能為收費(fèi)(新注冊(cè)的用戶可獲得官方贈(zèng)送的禮包),每天限制提交2次測(cè)試。
移動(dòng)測(cè)試學(xué)習(xí)端口:https://wetest.qq.com/guide/learn-source
貫眾云測(cè)試:貫眾云測(cè)試
貫眾云測(cè)試是中國(guó)移動(dòng)旗下的云測(cè)試服務(wù)平臺(tái),目前擁有超過(guò)100款市面主流終端,支持Android及iOS系統(tǒng)。提供兼容性測(cè)試、功能測(cè)試、性能測(cè)試,穩(wěn)定性測(cè)試(12小時(shí))及網(wǎng)絡(luò)場(chǎng)景測(cè)試服務(wù)(2G&3G&4G)。支持Appium腳本。缺點(diǎn)是終端數(shù)量較少,優(yōu)點(diǎn)是功能較為全面,且基本功能都是免費(fèi),使用成本還是蠻低的。
百度MTC:百度移動(dòng)云測(cè)試中心
百度MTC是百度開(kāi)放平臺(tái)旗下的移動(dòng)云測(cè)試中心。提供超過(guò)500款熱門機(jī)型,目前只支持Android系統(tǒng),暫不支持iOS系統(tǒng)。提供的測(cè)試服務(wù)種類有兼容性測(cè)試、性能測(cè)試、功能測(cè)試。并且提供了腳本錄制工具,類似Testin。但腳本錄制工具更新速度較慢。百度MTC的服務(wù)目前為收費(fèi)服務(wù),具體收費(fèi)情況請(qǐng)查看官網(wǎng)的介紹。
阿里MQC:MQC 阿里移動(dòng)質(zhì)量中心
阿里MQC是阿里巴巴旗下的移動(dòng)測(cè)試平臺(tái)。提供上百款測(cè)試終端,支持Android及iOS系統(tǒng)。提供兼容性測(cè)試、功能測(cè)試、性能測(cè)試以及穩(wěn)定性測(cè)試(1小時(shí))。測(cè)試腳本需使用Robotium或Appium測(cè)試框架編寫,難度較高。MQC也提供了遠(yuǎn)程的真機(jī)調(diào)試,功能和騰訊優(yōu)測(cè)類似,看來(lái)騰訊和阿里還真是一對(duì)兒冤家啊。
8.4.騰訊云測(cè)兼容性報(bào)告
8.5. 百度MTC-移動(dòng)云測(cè)試中心
百度MTC是百度開(kāi)放平臺(tái)旗下的移動(dòng)云測(cè)試中心。提供超過(guò)500款熱門機(jī)型,目前只支持Android系統(tǒng),暫不支持iOS系統(tǒng)。提供的測(cè)試服務(wù)種類有兼容性測(cè)試、性能測(cè)試、功能測(cè)試。并且提供了腳本錄制工具,類似Testin。但腳本錄制工具更新速度較慢。百度MTC的服務(wù)目前為收費(fèi)服務(wù)。
1、移動(dòng)app測(cè)試服務(wù)包含:自動(dòng)化測(cè)試、人工測(cè)試、用戶接受度評(píng)測(cè)、遠(yuǎn)程真機(jī)調(diào)試。點(diǎn)擊創(chuàng)建測(cè)試任務(wù)即可
2、以功能回放測(cè)試為例:創(chuàng)建測(cè)試任務(wù)。步驟為上傳app,上傳用例,選擇測(cè)試終端,截圖,郵件。
3、測(cè)試報(bào)告包含:應(yīng)用基本信息、結(jié)論總覽、問(wèn)題分布、問(wèn)題列表、問(wèn)題終端分布、性能結(jié)論、性能分析、內(nèi)存占用分析、終端列表。
點(diǎn)擊進(jìn)入終端詳細(xì)報(bào)告,包含內(nèi)容:終端信息、測(cè)試結(jié)果、性能結(jié)果、測(cè)試截圖、安裝日志、logcat日志、腳本日志、性能詳情、屏幕錄像。
8.6.各款云測(cè)試平臺(tái)對(duì)比
8.7.總體總結(jié)
1、真機(jī)租用:Testin云測(cè)和AWS Device Farm,均包含iOS和Android,型號(hào)全,優(yōu)先推薦。
2、AWS Device Farm支持框架Appium Java JUnit、Appium Java TestNG、Appium Python、Calabash、Instrumentation 、UI Automation 和 XCTest,終端支持Android和iOS,web,優(yōu)先推薦
AWS Device Farm支持網(wǎng)絡(luò)場(chǎng)景選擇,其他均不支持。但是它的性能指標(biāo)比較少,只有三項(xiàng),CPU,Memroy,Threads
3、百度MTC支持Appium、Robotium、Uiautomator框架,但是創(chuàng)建測(cè)試任務(wù)時(shí),過(guò)于簡(jiǎn)單,具體測(cè)試內(nèi)容展示不明確。
深度性能測(cè)試無(wú)亮點(diǎn),與兼容性測(cè)試中的性能數(shù)據(jù)無(wú)明顯優(yōu)勢(shì)。
4、阿里MQC支持在線錄制腳本,自行編寫腳本支持Appium、Robotium框架
測(cè)試服務(wù)類型分布清晰,按測(cè)試系統(tǒng)劃分,支持Android,iOS,yunos。創(chuàng)建測(cè)試任務(wù)時(shí),測(cè)試步驟類型表述清晰。
5、騰訊優(yōu)測(cè)-Xtest工具,支持錄制腳本。深度測(cè)試服務(wù)的報(bào)告很全面,但是價(jià)格稍貴。
6、Testin是國(guó)內(nèi)較早涉足云測(cè)試領(lǐng)域的公司之一。Testin在云端部署了300多款1000多部測(cè)試終端,終端種類及數(shù)量都比較全面。支持Android與iOS系統(tǒng),步驟簡(jiǎn)單,便于操作。
九、真機(jī)測(cè)試
注意:下載手機(jī)助手,換一根數(shù)據(jù)線,
9.1.第一步:讓手機(jī)顯示開(kāi)發(fā)者選項(xiàng)
多次點(diǎn)擊版本號(hào),顯示開(kāi)發(fā)者選項(xiàng)
9.2.允許USB調(diào)試
若使用真機(jī),用USB將手機(jī)和電腦連接,在手機(jī)端進(jìn)行操作:
(1)選擇USB連接方式為設(shè)備文件管理;
(2)設(shè)置->開(kāi)啟開(kāi)發(fā)者選項(xiàng)->勾選‘USB調(diào)試’(真機(jī)和模擬器上皆需進(jìn)行)。
9.3.檢測(cè)連接設(shè)備
在終端中輸入’adb devices‘,此時(shí)已連接設(shè)備列表下應(yīng)存在設(shè)備序列號(hào)
9.4.執(zhí)行相應(yīng)的測(cè)試操作
9.5.同屏
10.作業(yè):
adb devices
adb install xxx
adb uninstall 程序包名
adb shell 進(jìn)入手機(jī)
adb shell dumpsys meminfo +包名:應(yīng)用的內(nèi)存使用情況
adb logcat -v time process > C:/log/aa.txt
adb logcat *:W
用monkey 命令 對(duì)登錄apk進(jìn)行 性能測(cè)試
adb shell monkey -p com.example.login --ignore-crashes --ignore-timeouts --throttle 100 --pct-touch 50 --pct-motion 50 -v -v 1000 >c:\login\c.txt