1 GT簡介
GT(隨身調) Android版是騰訊 MIG 專項測試組自行研發的 Android APP 隨身調測平台,它是直接運行在手機上的“集成調測環境”(ITE, Integrated Test Environment)。
GTAndroid 版由兩部分組成:
1) 可獨立安裝的 GT(APK)。
2) 需要嵌入被測應用(App Under Test,以下簡稱 AUT)代碼中的 GT SDK(jar 包)。
之所以叫“集成調測環境”,是因為僅用 GT即可獨立完成如下針對 AUT 的測試工作:
l 基礎性能測試:手機整機或者手機上安裝的任何一個 APP 的 CPU、內存、網絡流量、流暢度/幀率、電量等基礎性能指標的實時展示、歷史數據采集及 excel 格式存儲、曲線繪制等。
l 日志查看:APP 的 Logcat 日志查看,便於直接用手機現場定位 APP 功能異常、crash。
l 網絡數據包抓包:直接用手機抓包保存成 pcap 文件,下載到 PC 后用 Wireshark 查看。
除了如上的 GT 控制台的“集成測試”能力,用戶還可以將 GT SDK 嵌入到被測應用中,從而使用 GT 的如下更高級的開發調試、測試能力:在 AUT 中加入各種自定義“輸入參數”,從而在 AUT 運行時,通過 GT 的懸浮窗或者設置界面修改這些輸入參數,實時改變 AUT 的能力和行為(例如,把微博客戶端的單次刷新條數定義為一個 GT 入參),達到“開發調試”的目的。
在 AUT 中加入各種自定義的“輸出參數”(例如,AUT 的各項核心指標),從而在用戶操作 AUT 時,實時觀察 AUT 的這些白盒指標的變化(舉例,客戶端動態選擇的就近接入的后台服務器地址)。
在指定的 AUT 代碼中插入 GT 的代碼耗時 API,得到 AUT 運行時的某些代碼片段的耗時數據,通過分析進行執行效率調優。
2 安裝、啟動、退出
1) 安裝:請像安裝普通 APP一樣的安裝GT
2) 啟動:像啟動普通 APP 一樣的啟動 GT
3) 在 GT 的一級頁面中,點擊手機的菜單鍵會彈出“Exit”選項。點擊“Exit”即可退出 GT
3 AUT、性能指標與參數設置
啟動GT后,展示的第一個頁面是AUT的設置頁面。如果是獨立使用GT對AUT進行性能測試(不需要在AUT中嵌入GT SDK),就需要在此頁面設置AUT及需要觀測的基礎性能指標項(CPU、CPU 時間片Jiffes、NET(流量信息)、各類 MEM)。
3.1 設置AUT
3.2 設置關注的性能指標
GT可以支持存在多個進程的AUT的測試,可以關注AUT每個進程的CPU、CPU時間片Jiffes、內存的 PSS和內存的PrivateDirty指標,以及AUT不區分進程的流量指標Net。選中一個AUT后,即可設置本次測試所關注的性能指標:
如AUT存在多個進程,而想要測試的進程的會比AUT的啟動滯后一些,此時需要在想要測試的進程啟動后,點擊下圖的refresh按鈕,通知GT將新啟動的被測進程的性能指標也監控起來。
3.3 輸出參數
GT提供了三種測試指標或關注信息的展示方式,其中最常用的是將指標或關注信息定義為輸出參數(以下簡稱出參),在出參界面以列表的形式展示。
1) 默認出參界面
GT出參界面,在不選擇任何AUT的情況下默認展示了手機整機的基礎性能指標,有CPU、內存、網絡流量、信號值、流暢度/幀率。整機的CPU指標默認放置在可用參數區域即時展示當前值,其他指標默認放置在禁用區域不關注。
2) 出參界面展示AUT設置的性能指標
AUT設置的性能指標會在出參界面以出參的形式展示:
3) 出參調整
可以調整哪些出參禁用、可用、放到懸浮框展示。
4) 出參數據采集
大部分GT基本性能出參和通過GTSDK在AUT中插樁自定義的數字型出參,都可以采集其歷史數據。
第一步,在未采集的狀態下,勾選需要記錄歷史數據的出參。
第二步,點擊開始采集按鈕采集數據。
點擊開始按鈕后,會開始采集出參的歷史數據。這時可以到 AUT 界面開始測試 AUT。測試結束后,可點擊懸浮窗上的停止按鈕,或者進入出參界面,點擊停止按鈕。停止后,可以保存采集的歷史數據。
5) 出參數據保存
停止采集后,可以一鍵保存和刪除所有勾選的出參的歷史數據。
點擊保存按鈕時輸入的名稱為本次測試數據存放的目錄名。數據默認保存在 SD 卡上的 GT/GW//GW_DATA 目錄下,每個出參歷史數據分別保存到一個文件,文件命名格式為_.csv,如 FPS_20131128205049.csv。
測試開始前,如果不希望看到上次測試的歷史數據,可以先清空勾選的出參。
6) 出參數據展示
在出參區域為非編輯狀態,出參所在區域為非禁用出參區域,且有歷史數據的情況下,點擊此條出參,可以進入出參數據展示界面。
歷史數據圖表默認顯示最近不超過50條的記錄,想查看最近50條之前的記錄請拖動圖表。在圖表上長按並滑動可以顯示具體一條記錄的詳細信息。點擊保存按鈕可單獨保存該出參信息,保存位置與命名方式和一鍵保存相同。長按曲線展示區域,可查看某個點的值。
除了AUT內存的PSS/PrivateDirty和信號值,包括CPU/Jiffes/幀率/流量信息等其他采集到的數據展示都類似上述圖中的曲線,其中流量信息在點擊刪除按鈕時會同時歸 0。流量數據展示:
AUT內存的PSS/PrivateDirty和信號值的數據展示界面同時有多條曲線,以PSS為例,其展示界面會同時展示PSS的Total/Dalvik/Native三個值的曲線(注:內存的PSS/Private都區分Total/Dalvik/Native 三個值,與Android手機的meminfo信息對應)。
7) 出參告警
在出參數據展示頁可以設置持續一段時間,值不在設置的閾值范圍內時的告警提示。告警提示的方式為通知欄文字變化+鳥鳴聲+震動+出參和 GT 圖標變為桔色。
3.4 輸入參數
輸入參數(以下簡稱“入參”)為用戶自定義的插入到被測應用程序代碼里的一種樁,可以在運行時改變被測代碼里參數的值。
舉個例子:比如被測代碼里有些參數需要調優時,可以通過入參隨時對這些參數進行修改,對比不同參數值下的效果(核心指標可以用出參實時展示出來)。需要說明的是,懸浮窗上最多同時顯示 3 個入參。所有入參都可以在GT主界面的入參子界面中看到,並可以在子界面調整顯示在懸浮窗上的入參具體項。
1) 總體界面
2) 切換到入參界面
點擊Tag 鍵“Para.”即可進入出入參界面,默認是出參界面。點擊in切換到入參界面。
3) 編輯入參
點擊一條入參,進入入參值編輯界面,修改入參的值。
4) 編輯入參區域
入參區域分為懸浮窗展示區,可用入參區,禁用入參區。 懸浮窗展示區的入參可以顯示在懸浮窗上,通過操作懸浮窗快速進行編輯。可用入參區的入參不展示在懸浮窗上,但是仍然起作用。禁用入參區的入參不起任何作用。點擊右上角的編輯按鈕,可以將入參區域切換到編輯狀態。
編輯狀態下,可按住一條入參右端的拖動按鈕,將其移動到其他入參區域。比如從禁用入參區拖入到可用入參區,這樣原來不起任何作用的入參就起作用了。
4 懸浮圖標和懸浮窗
4.1 懸浮窗設置
單擊“AirConsole”進入懸浮窗設置界面。
4.2 GT懸浮圖標
GTConsole在進入后台運行后,界面上會顯示GT的懸浮圖標。長按GT懸浮圖標可以打開或關閉懸浮窗。單擊GT懸浮圖標進入GT主界面。
4.3 GT懸浮窗
懸浮窗是簡化版脫機調試窗口,懸浮在被測程序界面上。通過懸浮窗可實現2屏合一,既能看到被測 app的界面又可看到app內部值等調試信息。懸浮窗能幫助開發者方便快捷的查看app運行狀態和核心指標。
懸浮窗上內容的刷新頻率可在出參界面上設置。
懸浮窗按功能可分為功能區,出參區和入參區。
1) 功能區
右上角為G&W或profiler按鈕,單擊即可開始或停止。按鈕默認控制G&W開關。
左上角為計時器,單擊可開始,停止和歸 0,支持 0-999s。
2) 出參區
最多有三個出參展示在懸浮窗上。每個出參由縮略名(左邊的灰色字符)和內容(右邊的白色字符)兩部分組成。縮略名最長不超過四個字符,超過的話只顯示三個字符加一個點。內容過長時可以點擊展開,再次點擊收起。
請將當前最關注的三個出參設置顯示在懸浮窗上,最最關注的設置為第一個。第一個出參為大字號顯示,更醒目。
3) 入參區
最多有三個入參展示在懸浮窗上。每個入參由縮略名(上邊的灰色字符)和內容(下邊的白色字符)兩部分組成。縮略名最長不超過四個字符,超過的話只顯示三個字符加一個點。點擊內容可進入入參編輯界面。
5 GT集成的測試組件
5.1 GTBattery(電量)
電量插件說明:
l 點擊插件界面的電量選項,進入電量插件界面。
l 設定參數項采樣間隔,即每隔多少毫秒(ms)記錄一次參數項數值,推薦設定采樣間隔為 100ms~1000ms,默認是250ms。
l 勾選被觀測參數項,GT支持電流I、電壓U、電量Power和溫度Temp四個參數。被勾選的參數會出現在輸出參數界面,取消勾選,則從輸出參數界面中清除。
l 點擊Start 按鈕,開始采集相關數值,對應輸出參數界面中顯示相應數值;點擊Stop按鈕,停止采集。
5.2 GTPcap(抓包)
抓包說明:
l 點擊插件界面的抓包選項,進入抓包插件界面。
l 點擊需要輸入名稱,不需要路徑,輸入的名稱會作為本次抓包的目錄名。如果發生網絡切換導致抓包中斷,會自動重新抓包,名字上加 1,2,3…作區分。
l 采用tcpdump抓包,可自定義抓包參數,否則用默認參數抓包。抓包參數見tcpdump相關說明。
l 抓包手機需要root,抓包保存目錄:SDcard/GT/tcpdump/(2.2.3 版本后保存在SDcard/GT/Capture/下)
5.3 GTScreenlock(wakelock 控制)
避免鎖屏插件由 wakelock 控制,該插件主要提供兩個功能。點擊插件界面的避免鎖屏選項,進入避免鎖屏插件界面。
開啟 Full wakelock 功能,手機不會主動滅屏;如果手動滅屏,手機也不會進入休眠,點擊進入插件詳情界面單擊開始/停止相應功能狀態。將按鈕置於off 狀態,該功能被關閉。
開啟Partial wakelock 功能,手機在使用過程中能夠主動滅屏,但進入滅屏狀態后不會休眠。將按鈕置於off狀態,該功能被關閉。
5.4 GTMemFill(內存填充)
內存填充插件,可在手機 RAM 上分配並占用指定大小的內存空間,所占用的內存會划 分在GT應用的名下,在手機的設置→應用→GT 項中可以觀察到GT占用RAM大小的變化。
所填充內存的大小,請根據被測手機剩余內存的大小適當填充,填充的大小不要超過手機剩余內存的大小,否則GT應用會崩潰退出;不同的手機,能填充的最大數目內存也不同,請自行嘗試。
6 Profiler功能
單擊GT界面最下面對應的“Profiler”TAB項,可切換到性能分析界面。該界面用來展示用戶自定義的分析項的統計結果(需配合GT SDK使用)。目前Profiler已實現的功能是統計代碼耗時。代碼耗時項在統計時會按照用戶自定義的group和tag進行分類匯總統計,首先按group分組,組內再按照tag(在tag之上會先區分線程內和可跨線程這兩類)進行分類統計。
6.1 總體界面
6.2 啟動/關閉性能分析(profiler)
啟動性能分析有兩種方法,方法 1:
方法 2,在懸浮框上點擊快捷按鈕
懸浮框上快捷按鈕默認為G&W的啟動暫停控制,可在設置界面切換為profiler 的啟動暫停控制。
6.3 性能數據展示
收集到耗時數據后,Profiler 界面會即時更新當前已收集到數據的分析統計結果:
啟動分析一段時間后暫停分析,還可以進行把分析信息保存到文件,或清空當前的分析信息。
點擊一個具體的分析項,會進入該耗時分析項的詳情頁(Detail 頁),Detail 頁面除了提供了分析統計信息,還提供了歷史數據的圖表展示。
耗時分析項的Detail頁中可以查看采樣次數、單位為秒的平均值、最大值、最小值。歷史數據圖表默認顯示最近不超過50條的記錄,想查看最近50條之前的記錄請拖動圖表。在圖表上長按並滑動可以顯示具體一條記錄的詳細信息,與出參詳情頁一致。另外,Detail 頁右上角的保存功能可以保存該頁顯示的分析統計信息到文件。保存文件路徑為: sdcard/GT/Profiler/xxx.csv。
7 日志
GT 提供了脫機調試時可以查看的日志,包括GT自定義的日志和LogCat日志展示,其中LogCat日志展示需要手機root權限。單擊GT界面最下面對應的“Log”TAB項,可切換到日志一級界面。
GT的日志是GT的主要功能之一,目的是脫機輸出 log。輸出日志會展示在GT日志界面上(界面上最多保存1000條最新的日志),同時還可以以文件的形式保存到手機上。GT提供了三種保存日志的形式,對於界面上可見日志的保存,可以通過點擊日志界面右上角的保存按鈕保存成文件;對於某個時間段內的日志,GT也在代碼中提供了控制保存起始與結束的API接口。
7.1 日志設置
單擊“Log ”進入log設置界面,界面內包含日志的總開關和日志自動保存開關。日志總開關關閉后,所有日志都不會輸出。總開關關閉后,自動保存開關也同時被關閉。日志自動保存開關打開后,所有日志會自動保存一份到GT指定的目錄下:目錄 /sdcard/GT/Log/。文件名從0到99,每個文件最大為4M,當前文件保存滿后,繼續保存到下一個文件。全部保存滿后,繼續從文件0開始保存,100 個文件循環使用。
7.2 GT日志界面主要功能
日志的展示,一條日志三段組成,第一段是時間,第二段是日志級別(V,D,I,W,E)、tag、線程號,第三段是日志消息。界面上最多展示 1000 條最近的日志。實時過濾(Filter)。GT日志過濾支持日志消息匹配、日志級別匹配、標簽(tag)匹配,最終匹配出的日志同時滿足這三項過濾條件。單擊日志展示界面,可以顯示或收起過濾欄。
右上角為日志清空,保存,搜索鍵。保存的邏輯為所見即所得,過濾完后,單擊保存按鈕,保存過濾后的內容;未過濾則保存全部內容,保存路徑請參考GT目錄說明。清空只是清空界面上的日志,不會對自動保存功能產生影響。單擊搜索鍵進入日志搜索二級界面。
日志列表具有實時刷新能力。當日志列表被拖動到最下方的最新一條日志時,如果再有新的日志產生,列表就會自動向上滾動。
7.3 GT自定義日志搜索界面
日志搜索界面是日志系統的二級界面。搜索頁的搜索范圍是日志一級頁面過濾后的所有內容。
輸入關鍵字進行搜索后,頁面上會高亮顯示符合搜索條件的日志條目。
打印日志功能有區分VERBOSE,DEBUG,INFO,WARNING和ERROR五個級別,用戶根據實際情況調用對應級別的接口。
記錄日志功能接口對應有CLEAN,START和END三個操作。CLEAN 操作則會刪除對應的文件。先START再END。END后會記錄從START到END間所有調用打印日志的信息到文件中。
8 使用GT SDK插樁調測AUT
在測試中除了關注性能指標,經常也有更進一步的,關注AUT實時運行狀態的需要或改變一些參數以調測應用在不同邏輯分支下的運行狀態。這種情況可以通過在AUT中嵌入GT SDK(以jar包的形式存在),通過GT SDK將關注的應用運行期信息輸出到GT提供的UI進行展示或通過GT SDK提供的輸入參數方式對 AUT的參數進行修改。
示例GT Demo 的功能就是從網上下載10張圖片並顯示,通過GT可以實時查看下載的帶寬、 單張速度、CPU、MEM 等指標,還能通過GT修改下載線程數、超時時間等等。該Demo主要是為了演示GT是如何脫機調試一個APP的。GT Demo工程中使用GT SDK的地方可以通過搜索 GT Usage 查找。
8.1 合入GT
使用GT在被測應用中插樁功能需要在被測工程中合入GT SDK,合入GT SDK分三步,首先要在手機中安裝GT.apk,然后將SDK jar包添加到工程中;最后是在合適的位置插入GT初始化的代碼 (demo 工程、SDK jar 包、GT.apk 請到GT官網下載) 。
1) 添加 SDK jar 包
拷貝 SDK jar 包到工程中的 libs 目錄中,如下圖:
此時,demo 工程就包括了 GT 的 API:
2) GT 初始化
在合適的位置插入GT初始化的代碼:
GTSDK的初始化需要在被測工程中調用GT.connect(Context, AbsGTParaLoader)方法建立被測應用與GT 的聯系。調用GT.connect方法的合適位置通常是被測應用Application的onCreate()或閃屏Activity的 onCreate(),不過在demo中為了方便演示,是通過點擊一個按鈕觸發調用該方法。
具體調用代碼在demo中的位置在類MainActivity中(可搜索GT.connect關鍵字找到代碼具體位置),大體結構如下:
完成測試后,需要在被測工程中調用 GT.disconnect(Context)方法斷開被測應用與 GT 的聯系。調用 GT.disconnect 方法的合適位置通常是被測應用退出的方法中。在本demo中,是通過點擊一個按鈕觸發調用該方法。具體調用代碼在demo中的位置在類 MainActivity中:
8.2 輸入參數
1) 相關API
下面以Demo為例說明。使用輸入參數有兩個步驟:
l GT SDK初始化后注冊所需的輸入參數。注冊輸入參數的API是 InParaManager.register 方法。
l 需要使用輸入參數的代碼邏輯上獲取輸入參數。 獲取輸入參數的API是一組重載方法,都叫GT.getInPara,可以返回所有基本類型和字符串的輸入參數值。
2) 注冊輸入參數
GT.connect方法中進行輸入參數的注冊:
(可選)注冊的同時可以選擇最多 3 個 APP 啟動時默認在 GT 懸浮窗顯示的輸入型參數:
3) 使用輸入參數
在Demo工程中下載網絡圖片時使用並發線程數,並發線程數取GT上注冊的值:(詳情請在Eclipse中搜索“並發線程數”變量的使用場景):
4) 建議
一個小技巧,GT.getInPara方法的第二個參數默認值,大部分情況下建議使用業務邏輯中的原值,這樣當輸入參數設置失效時,默認值取原值就不會改變原有代碼業務邏輯。如上面例子即是如此。
8.3 輸出參數
1) 相關API
下面以Demo為例說明。使用輸出參數有兩個步驟:
l 在GT初始化后注冊所需的輸出參數。注冊輸出型參數的API是OutParaManager. register方法。
l 在需要的地方更改輸出參數值。更改輸出參數的API是GT.setOutPara方法。
2) 注冊輸出參數
Android版GT在GT.connect方法中進行輸出參數的注冊:
(可選)注冊的同時可以選擇最多3個APP啟動時默認在GT懸浮窗顯示的輸出型參數:
3) 使用輸出參數
在Demo工程中確認是否下載完成判斷代碼邏輯里統計下載耗時,實際帶寬:
8.4 profiler功能
1) 相關API
下面以 Demo 為例說明。使用profiler 進行耗時分析有兩個步驟:
l 在需要開始計時的代碼邏輯設置開始計時。對應區分線程的是GT. startTimeInThread,不區分線程的是GT. startTime ,可跨進程的是GT.startTimeGlobal。
l 在需要結束計時的代碼邏輯設置結束計時。對應區分線程的是GT. endTimeInThread,不區分線程的是GT. endTime,可跨進程的是GT.endTimeGlobal。這里開始和結束調用的接口需要對應,若開始計時使用跨進程的API,則結束計時也使用跨進程的API;若開始計時使用區分線程的API,則結束計時也需要使用區分線程的API。
2) 打開profiler功能
目前使用profiler前需要先手動開啟profiler功能(詳見相關章節)。如果實際使用中需要在被測應用啟動后立即打開profiler 功能,而手動開啟來不及,那么可以先行手動打開GT應用,之后手動打開profiler 功能,然后再啟動被測應用即可。
3) 使用profiler功能——線程內統計
這里要統計單張圖片的下載時間,在網絡訪問時記錄開始時間,網絡數據接收完成時記錄結束時間,開始到結束之間即為單張圖片的下載時間。另外Demo 里下載圖片使用線程池有並發的可能,因此調用GT. startTimeInThread和GT. endTimeInThread,用於區分線程。
線程開始是記錄的開始時刻,下圖中紅色框中代碼;網絡訪問數據接收結束是記錄的結束時刻,下圖中紫色框中代碼:
注: GT.startTimeInThread和GT. endTimeInThread要和上面例子一樣成對使用,道理很簡單,時間要有個開始時刻和結束時刻才能計算。每次統計值都會在profiler界面顯示。 GT. endTimeInThread的long型返回值是一次統計的時間間隔,單位是納秒,即使在不啟動profiler功能的情況,本返回值也是有效的,只是不會在 GT 控制台的profiler模塊記錄。該返回值在異常情況下會是-1。
4) 使用profiler功能——應用內跨線程統計
Demo中圖片下載完成后到UI展示的時間統計,其統計開始時刻是下載並解析圖片生成 bitmap完成后,但其結束時刻應是Android的UI線程中,這種跨線程的應該用全局統計,並且要區別不同的圖片:
統計起點是下載線程的開始時刻:
其結束時刻在UI線程的Handler中:
8.5 打印日志
相關API
以Demo為例說明。打印日志功能類似logcat,有區分DEBUG,INFO,WARNING和ERROR四個級別, 用戶根據實際情況調用對應級別的接口。 具體例子在demo 中隨處可見,搜索“GT.Log”即可。
9 廣播方式使用GT
廣播方式使用GT,主要用於支持自動化中使用GT做性能數據采集。
1) 命令樣例:
l 先啟動GT:adb shell amstart -W -n com.tencent.wstt.gt/com.tencent.wstt.gt.activity.GTMainActivity
l 使gt可以采集該應用的性能信息;pkgName是包名;verName是版本號(可選參數):adbshell am broadcast -a com.tencent.wstt.gt.baseCommand.startTest --es pkgName"com.tencent.map" --es verName"6.0.1"
l 如果只測FPS和SM,可以這樣空參數:adbshell am broadcast -a com.tencent.wstt.gt.baseCommand.startTest
l 開啟CPU采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei cpu 1
l 停止CPU采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei cpu 0
l 開啟CPU時間片采集:adbshell am broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei jif 1
l 停止CPU時間片采集:adbshell am broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei jif 0
l 開啟PSS采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei pss 1
l 停止PSS采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei pss 0
l 開啟PrivateDirty采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei pri 1
l 停止PrivateDirty采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei pri 0
l 開啟NET采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei net 1
l 停止NET采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei net 0
l 開啟FPS采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei fps 1
l 停止FPS采集:adb shellam broadcast -a com.tencent.wstt.gt.baseCommand.sampleData --ei fps 0
2) 流暢度(SM)的獲取自成體系,注意以下步驟,其中前4步驟建議測試前人工處理好:
l 對應UI上的“更改”,一次執行除非執行逆操作“恢復”,會一直有效:adb shell am broadcast -a com.tencent.wstt.gt.plugin.sm.modify
l 對應UI上的“恢復”,測試完畢時執行一次,如手機長期用於流暢度測試可以一直不用恢復:adb shell am broadcast -a com.tencent.wstt.gt.plugin.sm.resume
l 對應UI上的“重啟”,重啟手機使“更改”或“恢復”生效:adb shell am broadcast -a com.tencent.wstt.gt.plugin.sm.restart
l 對應UI上的“開始測試”,procName是指定被測進程的進程名,執行后在出參列表應可以看到SM參數,注意第一次執行需要給GT授權:adb shell am broadcast -a com.tencent.wstt.gt.plugin.sm.startTest--es procName "com.tencent.wstt.gt"
l 對應UI上的“停止測試”:adbshell am broadcast -a com.tencent.wstt.gt.plugin.sm.endTest
3) 結束采集並保存,同時刪除數據記錄:
saveFolderName為保存目錄的名稱,最長可以自定義三級目錄,以"/"分割,此三級目錄會保存在/sdcard/GT/GW/下,每次保存后,GT會把緩存的本次測試數據清空。
adbshell am broadcast -a com.tencent.wstt.gt.baseCommand.endTest --essaveFolderName "普通導航測試" --es desc "騰訊地圖_6.0.1_普通導航_1"
關閉GT:adb shell ambroadcast -a com.tencent.wstt.gt.baseCommand.exitGT
注意:
l FPS第一次會申請Root權限,默認情況需要手動點一下,所以建議用TowerRoot或CM自帶的可以取消彈框的Root工具取消彈框
l 流暢度第一次開始測試需要Root權限,默認情況需要手動點一下。
4) 廣播驅動耗電測試(對應耗電測試插件)
adbshell am broadcast -a com.tencent.wstt.gt.plugin.battery.startTest --eirefreshRate 250 --ei brightness 100 --ez I true --ez U true --ez T true --ez Ptrue
這條廣播也可以不帶參數,將以默認的250ms刷新率,100的屏幕亮度,只關注電流值啟動測試:adb shell am broadcast -acom.tencent.wstt.gt.plugin.battery.startTest
停止耗電指標的采集:adbshell am broadcast -a com.tencent.wstt.gt.plugin.battery.endTest
5) 廣播驅動GT模擬GPS(對應月光寶盒插件)
注意:啟動回放GPS軌跡之前要先在開發者選項里選擇允許模擬位置;並在位置設置里打開只通過硬件設備定位。
l 啟動回放指定序號的GPS路徑文件,progress是可選參數,指定從某個進度開始回放,取值[0-100]:adb shell am broadcast -a com.tencent.wstt.gt.plugin.gps.startReplay--ei seq 0 --ei progress 0
l 或者啟動回放指定名稱的GPS路徑文件,命令行對中文支持不好,所以路徑文件盡量用英文命名,progress是可選參數,指定從某個進度開始回放,取值[0-100]:adb shell am broadcast -a com.tencent.wstt.gt.plugin.gps.startReplay--es filename xxxx.gps --ei progress 0
l 或者還可以直接回放單點坐標:adb shell am broadcast -a com.tencent.wstt.gt.plugin.gps.startReplay--es lng 116.15353149 --es lat 39.72413462
l 完整參數(經度lng,維度lat,精度acc,方位bear,速度spd,海拔alt):adb shell ambroadcast -a com.tencent.wstt.gt.plugin.gps.startReplay --es lng 116.15353149--es lat 39.72413462 --es acc 150.0 --es bear 77.3 --es spd 13.5 --es alt 60.70
l 停止模擬位置的回放:adbshell am broadcast -a com.tencent.wstt.gt.plugin.gps.endReplay
l 開始采集位置信息,filename參數可不填,但文件名需要以.gps作為后綴:adbshell am broadcast -a com.tencent.wstt.gt.plugin.gps.startRecord --es filenamexxxx.gps
l 停止采集位置信息:adbshell am broadcast -a com.tencent.wstt.gt.plugin.gps.endRecord
6) 廣播驅動內存填充(對應內存填充插件)
l 內存填充:adb shellam broadcast -a com.tencent.wstt.gt.plugin.memfill.fill --ei size 200
l 內存釋放:adbshell am broadcast -a com.tencent.wstt.gt.plugin.memfill.free
7) 廣播驅動抓包(對應抓包插件)
抓包到指定路徑的文件,參數param可以缺省:adbshell am broadcast -a com.tencent.wstt.gt.plugin.tcpdump.startTest --esfilepath "/sdcard/GT/Tcpdump/Capture/aaa.pcap" --es param "-p -s0 -vv -w"
結束抓包:adbshell am broadcast -a com.tencent.wstt.gt.plugin.tcpdump.endTest
10 簡單使用示例
1) 請像安裝普通APP一樣的安裝GT到手機(GT.apk)(請到GT官網下載最新版)
2) 從手機上啟動已安裝的GT ,進入如下界面
3) 選擇一個已安裝到手機的APP做為被測應用(AUT)
4) 選擇被測APP關注的性能信息
5) 啟動被測應用后,回到 GT 界面
6) 選擇本次要測試的性能指標(包括整機性能信息)
7) 選擇需要時刻關注的性能指標
8) 選擇需要采集歷史記錄的指標
9) 進入被測應用界面,啟動數據采集,開始測試
10) 測試完畢時,停止數據采集
11) 查看性能指標歷史數據
12) 批量保存性能數據
13) 批量刪除性能數據
14) 連上PC查看已保存的性能數據