一.手機測試概念
傳統(tǒng)手機測試VS手機應(yīng)用軟件測試
·傳統(tǒng)手機測試:指測試手機本身比如抗壓葫辐,抗摔搜锰,抗疲勞,抗低溫高溫等耿战。也包括手機本身功能纽乱、性能等測試。
·手機應(yīng)用軟件測試 C/S Client/Server
手機應(yīng)用軟件是基于手機操作系統(tǒng)之上開發(fā)出來的軟件昆箕,做這樣的測試就
二鸦列、手機端常規(guī)測試
1.What
2.介紹手機測試的概念架構(gòu)叫做手機應(yīng)用軟件測試。
對于手機端測試鹏倘,按照平臺來分薯嗤,分為Android和IOS兩大主流系統(tǒng)
1.Android開源導(dǎo)致碎片化比較嚴(yán)重,(手機品牌眾多纤泵,系統(tǒng)版本各異骆姐,分辨率不統(tǒng)一,主流手機型號上千捏题。無法保證應(yīng)用玻褪、游戲?qū)τ谒惺謾C的適配兼容。)bug比較多公荧,而IOS通常bug會少一些带射。
2.Android手機長按home鍵,會呼出應(yīng)用列表和切換應(yīng)用循狰,右滑擇會終止應(yīng)用窟社。
還有分辨率測試券勺,Android手機分辨率有20多種,IOS較少一些
3.再就是手機操作系統(tǒng)灿里,Android系統(tǒng)太多了关炼,IOS較少,但是升級之后不能夠降級匣吊,不過呢儒拂,發(fā)現(xiàn)了最近ios中boss直聘的一個bug,是有關(guān)于Boss直聘強更的一個bug色鸳,當(dāng)我們點擊手機APP端 Boss直聘 進入主頁面彈出提示框“新增郵箱上傳附件簡歷功能” 彈窗中有立即升級的鏈接社痛,點擊別的區(qū)域沒有反應(yīng);必須點擊“立即升級”才會跳轉(zhuǎn)到“App Store”若不升級缕碎,重新切換回Boss直聘界面褥影,依舊提示“立即升級”全部退出依然如此池户。
4.按照目前技術(shù)架構(gòu)的話咏雌,現(xiàn)在有一些原生的app架構(gòu),類似于Client Server架構(gòu)校焦,也有基于Html5的app赊抖,類似于pc機的BS(Broswer server)架構(gòu)。手機測試和pc機類似寨典,又有一些不同的地方氛雪。
5.當(dāng)然除了手機,現(xiàn)在還有好多使用Android系統(tǒng)耸成,比如酒店點餐的平板报亩,銀行對公或者對個人業(yè)務(wù)的業(yè)務(wù)平臺,還有一些智能的穿戴設(shè)備井氢,小米的手環(huán)弦追,google 聯(lián)想的智能眼鏡,智能家居花竞,電視盒子劲件,這些都是在使用android系統(tǒng),我之前最早的時候约急,就要測試過一個智能家居設(shè)備零远,測試的時候需要考慮藍牙,wifi連接傳輸這塊厌蔽,也有好多要測試的內(nèi)容牵辣。
2.how
1.功能測試
對于手機app來說,和我們測試web項目差不太多奴饮,也是各種測試方式需要考慮進來服猪,比如說邏輯功能測試供填,現(xiàn)在移動端越來越火爆,大家用的軟件也越來越多罢猪,對軟件也越來越挑剔近她,現(xiàn)在公司在開發(fā)移動端的時候,肯定是有相應(yīng)的需求文檔和UI所設(shè)計的產(chǎn)品效果圖膳帕,我們做邏輯功能測試粘捎,就是根據(jù)這些資料,當(dāng)然也根據(jù)我們正常人的邏輯思維進行邏輯功能測試危彩,在做邏輯功能測試的時候攒磨,我們要測試主頁面,我的頁面汤徽,商城頁面這些功能是否合理娩缰。
2.安裝與卸載測試
軟件安裝后是否可以正常運行,安裝過程中是否可以取消,安裝空間不足時谒府,是否有相應(yīng)提示,是否可以卸載應(yīng)用(可通過桌面卸載拼坎,也可以通過軟件卸載。曾發(fā)現(xiàn)在IOS手機上有個應(yīng)用安裝時未完全安裝完疫,終止安裝后泰鸡,未完成安裝的應(yīng)用圖標(biāo)一直顯示在手機上,并且無法成功刪除),卸載是否支持取消功能壳鹤,單擊取消后軟件卸載功能是否正常,卸載后文件是否全部刪除所有的安裝文件夾,從不同的應(yīng)用市場下載進行安裝測試盛龄,比如測試小米市場,華為市場芳誓,應(yīng)用寶余舶,安卓市場,安智市場的安裝測試锹淌。
3.軟件升級測試
當(dāng)客戶端有新版本時匿值,是否有更新提示,當(dāng)版本為非強制升級版時葛圃,用戶可以取消更新千扔,老版本能正常使用,用戶在下次啟動app時库正,仍能出現(xiàn)更新提示曲楚;當(dāng)版本為強制升級版時,當(dāng)給出強制更新后用戶沒有做更新時褥符,退出客戶端龙誊,下次啟動app時,仍出現(xiàn)強制升級提示喷楣,當(dāng)然現(xiàn)在強更已經(jīng)很少出現(xiàn)了趟大。檢查更新后各個功能是否能正常使用鹤树;在線跨版本升級后能否正常使用,當(dāng)然現(xiàn)在主流的安裝更新方式開始向熱更新熱部署方式轉(zhuǎn)變逊朽,就是在用戶不需要手動更新的情況下罕伯,完成版本的靜默更新,這個技術(shù)是有難度的叽讳,需要看公司中程序員的技術(shù)能力還有就是是否有這樣的產(chǎn)品需求追他。
4. 登錄測試
對于登錄測試,基本上每一款app都有登錄注冊功能岛蚤,所以在測試App的時候邑狸,登錄測試是必不可少的一項。
我們做登錄測試的時候涤妒,往往包含這么些項:
登錄用戶名和密碼錯誤時单雾,界面有提示信息;
用戶主動退出登陸后她紫,下次進入app時硅堆,應(yīng)該進入登陸界面;
密碼更改后犁苏,登錄時是否做到了有效數(shù)據(jù)的校驗硬萍,對于未登錄狀態(tài)時扩所,一些頁面的操作围详,是否做了控制;
切換賬號登錄祖屏,檢驗登錄的信息是否做到及時更新助赞,對于多個端(web、iso袁勺、android等)進行操作時雹食,確保數(shù)據(jù)庫操作無誤,且每個端可以及時看到數(shù)據(jù)的更新,一個賬號只允許一臺機器登陸的軟件期丰,需要賬號登錄多個手機時群叶,是否將原用戶踢下線,且能夠給出提示信息,用戶登錄狀態(tài)太久钝荡,session會過期街立,會出現(xiàn)“雖然是登錄狀態(tài),系統(tǒng)會提示用戶沒有登陸”
5.安全性測試 - 權(quán)限測試
對于手機權(quán)限埠通,如果我們是剛開發(fā)不知名的app赎离,權(quán)限這塊盡量少一些,這些權(quán)限在安裝的時候都必須用戶同意锤窑。在Android 6.0之后届惋,權(quán)限需要動態(tài)的申請,我們測試的時候,需要測試在使用到這些權(quán)限的時候贩据,程序員是否做邏輯判斷荣病,用戶同意權(quán)限應(yīng)該怎么操作码撰,不同意權(quán)限又應(yīng)該怎么操作。
6.消息推送測試
消息推送个盆,是移動端的一大特色灸拍。我就說一下消息推送我們所做的這些方面吧,
未鎖屏?xí)r砾省,應(yīng)用后臺運行鸡岗,消息推送是否可正常接收,未鎖屏?xí)r编兄,APP客戶端使用過程中轩性,可以收到消息提醒,且點擊可查看狠鸳。
鎖屏?xí)r揣苏,手機消息欄是否可以接收到消息提醒。且點擊可查看件舵。點擊后消息欄中消失卸察。
精準(zhǔn)推送
當(dāng)推送消息是針對登錄用戶的時候,需要檢查收到的push與用戶身份是否相符铅祸,沒有錯誤的將其他人的消息推送過來
push推送消息是是否能有針對性的推送坑质,如相應(yīng)內(nèi)容推送給相應(yīng)用戶(精準(zhǔn)推送)
退出登錄后,是否接受push推送(根據(jù)需求來)
7.前后臺切換測試(鎖屏)
8.UI測試(界面測試)
9.兼容性測試
10.網(wǎng)絡(luò)環(huán)境測試
11.mokey測試 (monkey壓力測試 測試為1000-2000)
12.性能測試
三.Android介紹
1.Android SDK(Software Development Kit)的安裝和配置
2.安裝java環(huán)境
3.啟動配置好SDK的Android版本eclipse Android Studio(類似Idea)
- 檢查是否成功:
cmd → java -version
5.Android studio安裝
6.創(chuàng)建虛擬機
Android App開發(fā)一般需要模擬器來測試程序的正確性
Android Virtual Device临梗,就是Android運行的虛擬設(shè)備涡扼,是Android的模擬器識別。建立的Android App要運行盟庞,必須創(chuàng)建AVD吃沪,每個AVD上可以配置很多的運行項目。
簡而言之:AVD即用于Android開發(fā)調(diào)試的模擬機什猖。
AVD name:填寫的虛擬機名稱票彪,純英文和數(shù)字組成。
Device:設(shè)定模擬的設(shè)備不狮,一般選擇手機型號:3.2QVGA(ADP2)(320480: mdpi)降铸。
Target:安裝Android的版本,目前4.0是主流荤傲,即可選Android4.0.3 API 15垮耳。
CPI/ABi:模擬的CPU型號,這里的ARM是手機的CPU型號。
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:每一個應(yīng)用的最大內(nèi)存空間分配牙捉,默認(rèn)即可竹揍。
SD Card:選在size上,這個就是在默認(rèn)目錄里自動建立一個模擬SD卡的文件,SD卡的大小隨意,也可以不填,不填代表不適用SD卡。
7.啟動虛擬機
四.ADB
1.ADB介紹
ADB全稱Android Debug Bridge, 是android sdk里的一個工具, 用這個工具可以直接操作管理android模擬器或者真實的andriod設(shè)備(如G1手機)
它的主要功能有:
運行設(shè)備的shell(命令行)
管理模擬器或設(shè)備的端口映射
計算機和設(shè)備之間上傳/下載文件
將本地apk軟件安裝至模擬器或android設(shè)備
2.配置ADB環(huán)境變量
3.ADB常用指令
查看設(shè)備:adb devices
這個命令是查看當(dāng)前連接的設(shè)備, 連接到計算機的android設(shè)備或者模擬器將會列出顯示
安裝軟件:adb install -r (APK路徑)
-r 代表如果apk已安裝邪铲,重新安裝apk并保留數(shù)據(jù)和緩存文件芬位。apk路徑則可以直接將apk文件拖進cmd窗口,記得加空格带到。
卸載軟件
adb uninstall <軟件名>
adb uninstall -k <軟件名>
如果加 -k 參數(shù),為卸載軟件但是保留配置和緩存文件
問程序員--com.example.test
登錄設(shè)備shell
adb shell
adb shell <command命令>
這個命令將登錄設(shè)備的shell.
后面加<command命令>將是直接運行設(shè)備命令, 相當(dāng)于執(zhí)行遠程命令
查看手機內(nèi)存情況
adb shell dumpsys cpuinfo
查看內(nèi)存情況
adb shell getprop | findstr dalvik 本機內(nèi)存的使用情況
查看應(yīng)用內(nèi)存使用情況
adb shell dumpsys meminfo +包名:應(yīng)用的內(nèi)存使用情況
列出手機裝的所有app的包名:
adb shell pm list packages
列出系統(tǒng)應(yīng)用的所有包名:
adb shell pm list packages -s
列出除了系統(tǒng)應(yīng)用的第三方應(yīng)用包名:
adb shell pm list packages -3
4.adb logcat 查看手機日志
adb logcat 命令格式 : adb logcat [選項] [過濾項], 其中 選項 和 過濾項 在 中括號 [] 中, 說明這是可選的;
在命令行中輸入 adb logcat --help 命令, 就可以顯示該命令的幫助信息;
">"輸出 : ">" 后面跟著要輸出的日志文件, 可以將 logcat 日志輸出到文件中, 使用adb logcat > log 命令
指定 logcat 的日志輸出格式 :
-- "-v"選項 : 使用adb logcat -v time 命令, 可以查看日志的輸出時間;
"process"格式 : " 優(yōu)先級 (進程ID) : 日志信息 ", 使用adb logcat -v process 命令;
將手機日志輸出到本地文件中
adb logcat -v time process > C:/log/aa.txt
有多臺設(shè)備是adb選擇設(shè)備
adb -s 設(shè)備名稱 logcat -v time process >C:/log/aa.txt
Android 的日志分為如下幾個級別:
V —— Verbose(最低昧碉,輸出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不輸出)
按某級別過濾日志則會將該級別及以上的日志輸出揽惹。
比如被饿,命令:adb logcat *:W 將 Warning、Error搪搏、Fatal 和 Silent 日志輸出
顯示所有優(yōu)先級大于等于“warning”的日志
五.APK牢固性(加密)
應(yīng)用加固
防篡改:通過完整性保護和簽名校驗保護狭握,能有效避免應(yīng)用被二次打包,杜絕盜版應(yīng)用的產(chǎn)生疯溺;
防逆向:通過對代碼進行隱藏以及加密處理论颅,使攻擊者無法對二進制代碼進行反編譯,獲得源代碼或代碼運行邏輯喝检;
防調(diào)試:通過反調(diào)試技術(shù)嗅辣,使攻擊者無法調(diào)試原生代碼或Java代碼撼泛,阻止攻擊者獲取代碼里的敏感數(shù)據(jù)挠说。
網(wǎng)上有很多Apk加固的第三方平臺,最有名的應(yīng)當(dāng)屬于:愛加密和梆梆加固了愿题。其實加固說的簡單點就是對源Apk進行加密损俭,然后在套上一層殼即可
六.Monkey測試
1.Money介紹
顧名思義,Monkey就是猴子潘酗, Monkey測試杆兵,就像一只猴子, 在電腦面前仔夺,亂敲鍵盤在測試琐脏。
通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、 按鍵等操作來對設(shè)備上的程序進行壓力測試日裙,檢測程序多久的時間會發(fā)生異常吹艇。
2.Monkey用來做什么
Monkey 主要用于Android 的壓力測試自動的一個壓力測試小工具, 主要目的就是為了測試app 是否會Crash(崩潰)昂拂。
3.Monkey 前提條件
- 環(huán)境配置:把adb加入系統(tǒng)環(huán)境受神,手機開啟開發(fā)者模式
- 連接手機,獲取測試的包名格侯。獲取包名的方法
- Monkey編寫測試命令,并運行鼻听。monkey操作命令
如果要提前中結(jié)束測試,中斷運行中的monkey
CTRL+C
adb shell ps | grep monkey 返回進程號
adb shell kill [剛才查到的進程號]
4.Monkey程序介紹
Monkey程序由Android系統(tǒng)自帶联四,使用Java語言寫成撑碴,在Android文件系統(tǒng)中的存放路徑是: /system/framework/monkey.jar;
Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執(zhí)行朝墩,shell腳本在Android文件系統(tǒng)中 的存放路徑是:/system/bin/monkey灰羽;
Monkey 命令啟動方式:
a)可以通過PC機CMD窗口中執(zhí)行: adb shell monkey {+命令參數(shù)}來進行Monkey測試
b)在PC上adb shell 進入Android系統(tǒng),通過執(zhí)行 monkey {+命令參數(shù)} 來進行Monkey 測試
c ) 在Android機或者模擬器上直接執(zhí)行monkey 命令鱼辙,可以在Android機上安裝Android終端模擬器
七.Monkey 命令 基本參數(shù)介紹
1.使用monkey測試手機所有程序
2.-p <允許的包名列表>
3.顯示日志詳細(xì)程度
4.Monkey日志分析
5.--throttle <毫秒>
6.--pct-touch <percent>
7.--pct-motion <percent>
8.--ignore-crashes
9.--ignore-timeouts(ANR)
10.Monkey 實例
11.Monkey異常分析
12.monkey事件百分比
八.手機兼容性測試
1.機型配置問題
Android兼容測試一定要做到寬范圍覆蓋廉嚼,如果做不到這個,那么就違背了兼容性測試的目標(biāo)——測試App在各類機型倒戏、系統(tǒng)上的運行是否兼容怠噪、適配。
因此杜跷,兼容性測試必須要在各個機型傍念、系統(tǒng)上對App進行運行、測試葛闷,查看相關(guān)UI是否適配憋槐、功能是否正常。所以淑趾,必須要為兼容性測試配備盡可能多的機型阳仔。這是不是意味著,你的公司要去購置各類機型設(shè)備扣泊?當(dāng)然不是近范。對于一般的公司或者開發(fā)者,這將會是一大筆開銷延蟹,為了節(jié)約資金而造成進行覆蓋率較低的話评矩,則失去了兼容性測試的意義。另外阱飘,這也是沒必要的斥杜,因為往往你就一個或兩三個App虱颗,為了這少量App測試,而去購置如此大量的設(shè)備蔗喂,無疑是一種資源浪費上枕。除此,還有一個原因弱恒,將在兼容性測試如何展開里去說辨萍。除此,機型量的多少也是一個權(quán)衡的過程返弹,目前锈玉,通用的兼容性測試一般覆蓋Top100-300的機型,對于實在是小量機型或者老舊機型义起,用戶量非常小拉背,在一定程度上,是否需要覆蓋則需要權(quán)衡默终,總的來說椅棺,Top排名的手機基本足夠。
2.兼容性如何展開
這是一個經(jīng)驗性的過程齐蔽,可以去借鑒大型互聯(lián)網(wǎng)公司的成熟App的測試方法两疚。目前,無論是國際知名App含滴,還是國內(nèi)知名App诱渤,谷歌、Facebook谈况,BAT等勺美,他們都有大量的App對外推出,對于App兼容性要求非常高碑韵,因此赡茸,他們的做法是非常值得借鑒的。這些公司的兼容性測試祝闻,都有一個相同的解決方案占卧,那就是自動化測試框架與平臺的實現(xiàn)。通過瀏覽上述公司在各種大會公布的內(nèi)容治筒,或者通過論壇知識分享屉栓,都能看到,他們不僅有自己的測試實驗室耸袜,擁有大量的手機,除此牲平,還有一整套的自動化測試平臺堤框,來完成兼容性測試。
3.有哪些好用的App云測試平臺
<meta charset="utf-8">
目前對移動App的測試主要指的是下面幾部分:
兼容性測試——App對不同手機、操作系統(tǒng)版本的兼容性測試蜈抓,包括安裝启绰、啟動、卸載等沟使。
功能測試——遍歷應(yīng)用的每一個角落委可,查看應(yīng)用的功能、邏輯是否正常腊嗡,完整着倾。
性能測試——應(yīng)用的性能怎樣,如啟動時間燕少、反應(yīng)時間卡者、CPU占用率,內(nèi)存占用率等客们。
穩(wěn)定性測試——在一定時間內(nèi)對App進行持續(xù)地測試崇决,測試App運行的穩(wěn)定性。
網(wǎng)絡(luò)場景測試——測試不同網(wǎng)絡(luò)環(huán)境中App的運行狀況底挫,如2G&3G恒傻,弱網(wǎng)絡(luò)等。
以下是國內(nèi)幾家主要的云測試平臺:
Testin:Testin云測|全球領(lǐng)先的App及手游測試平臺
Testin是國內(nèi)較早涉足云測試領(lǐng)域的公司之一建邓。Testin在云端部署了300多款1000多部測試終端碌冶,終端種類及數(shù)量都比較全面。支持Android與iOS系統(tǒng)涝缝。但目前僅少部分服務(wù)為免費扑庞,絕大多數(shù)服務(wù)為收費項目,故而使用成本較高拒逮,具體收費情況請查看官網(wǎng)的介紹罐氨。
騰訊優(yōu)測:優(yōu)測網(wǎng)-讓測試更簡單
騰訊優(yōu)測是騰訊旗下的云測試服務(wù)平臺,擁有超過1000款測試終端滩援,機型數(shù)量龐大栅隐。但僅支持Android,暫不支持iOS系統(tǒng)玩徊。提供兼容性測試服務(wù)租悄,不提供性能測試、功能測試及穩(wěn)定性測試服務(wù)恩袱。另外泣棋,騰訊優(yōu)測還提供“云手機”服務(wù),開發(fā)者可以遠程控制測試終端畔塔,實時查看App安裝潭辈、運行效果鸯屿。優(yōu)測目前的功能為收費(新注冊的用戶可獲得官方贈送的禮包),每天限制提交2次測試把敢。
移動測試學(xué)習(xí)端口:https://wetest.qq.com/guide/learn-source
4.騰訊云測兼容性報告
5.百度MTC-移動云測試中心
1.移動app測試服務(wù)包含:自動化測試寄摆、人工測試、用戶接受度評測修赞、遠程真機調(diào)試婶恼。點擊創(chuàng)建測試任務(wù)即可
2.以功能回放測試為例:創(chuàng)建測試任務(wù)。步驟為上傳app柏副,上傳用例勾邦,選擇測試終端,截圖搓扯,郵件检痰。
3.測試報告包含:應(yīng)用基本信息、結(jié)論總覽锨推、問題分布铅歼、問題列表、問題終端分布换可、性能結(jié)論椎椰、性能分析、內(nèi)存占用分析沾鳄、終端列表慨飘。
點擊進入終端詳細(xì)報告,包含內(nèi)容:終端信息译荞、測試結(jié)果瓤的、性能結(jié)果、測試截圖吞歼、安裝日志务傲、logcat日志嚼酝、腳本日志荸百、性能詳情咕幻、屏幕錄像。
6.各款云測試平臺對比
7.總體總結(jié)
1糯俗、真機租用:Testin云測和AWS Device Farm尿褪,均包含iOS和Android,型號全得湘,優(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ò)場景選擇,其他均不支持黎泣。但是它的性能指標(biāo)比較少恕刘,只有三項,CPU抒倚,Memroy,Threads
3褐着、百度MTC支持Appium、Robotium托呕、Uiautomator框架含蓉,但是創(chuàng)建測試任務(wù)時,過于簡單项郊,具體測試內(nèi)容展示不明確馅扣。
深度性能測試無亮點,與兼容性測試中的性能數(shù)據(jù)無明顯優(yōu)勢着降。
4差油、阿里MQC支持在線錄制腳本,自行編寫腳本支持Appium任洞、Robotium框架
測試服務(wù)類型分布清晰蓄喇,按測試系統(tǒng)劃分,支持Android交掏,iOS妆偏,yunos。創(chuàng)建測試任務(wù)時耀销,測試步驟類型表述清晰楼眷。
5、騰訊優(yōu)測-Xtest工具熊尉,支持錄制腳本罐柳。深度測試服務(wù)的報告很全面,但是價格稍貴狰住。
6张吉、Testin是國內(nèi)較早涉足云測試領(lǐng)域的公司之一。Testin在云端部署了300多款1000多部測試終端催植,終端種類及數(shù)量都比較全面肮蛹。支持Android與iOS系統(tǒng)勺择,步驟簡單,便于操作伦忠。
九.真機測試
1.第一步:讓手機顯示開發(fā)者選項
2.允許USB調(diào)試
3.檢測連接設(shè)備
4.執(zhí)行相應(yīng)的測試操作
5.同屏