DoraemonKit:一款適用於 iOS App 的線下測試工具集合
DoraemonKit
一款適用於iOS App的線下測試工具集合。
DoraemonKit具有哪些功能
- 【App資訊檢視】快速檢視手機資訊,App資訊,許可權資訊的渠道,避免去手機設定查詢或者檢視專案原始碼的麻煩。
- 【沙盒瀏覽】App內部檔案瀏覽的功能,並且能通過airDrop或者其他分享方式上傳到PC中,進行更加細緻的操作。
- 【MockGPS】App能定位到全國各地,支援地圖地位和手動輸入經緯度。
- 【H5任意門】開發測試同學可以快速輸入H5頁面地址,檢視該頁面效果。
- 【日誌顯示】每一條日誌資訊,都在在App的介面中顯示出來,再也不需要匯出日誌這麼麻煩。
- 【幀率監控】App 幀率資訊提供波形圖檢視功能,讓幀率監控的趨勢更加明顯。
- 【CPU監控】App CPU使用率資訊提供波形圖檢視功能,讓CPU監控的趨勢更加形象。
- 【記憶體監控】App 記憶體使用量資訊提供波形圖檢視功能,讓記憶體監控的趨勢更加鮮明。
- 【流量監控】攔截App內部流量資訊,提供波形圖展示、流量概要展示、流量列表展示、流量篩選、流量詳情,對流量資訊統一攔截,成為我們app中自帶的“Charles”。
- 【自定義監控】可以選擇你要監控的選項,包括FPS、CPU、記憶體、流量。監控完畢之後,把資料儲存到本地,也可以匯出來做更加細緻的分析。
- 【顏色吸管】方便設計師UI捉蟲的時候,檢視每一個元件的顏色值是否設定正確。
- 【元件檢查】可以抓取任意一個UI控制元件,檢視它們的詳細資訊,包括控制元件名稱、控制元件位置、背景色、字型顏色、字型大小。
- 【對齊標尺】參考Android系統自帶測試工具,能夠實時捕獲螢幕座標,並且可以檢視元件是否對齊。
效果演示
上面兩行是業務線自定義的工具,接入方可以自定義。除此之外都是內建工具集合。
DoraemonKit如何使用
3.1: cocoapods依賴
包含兩個subspec,一個是包含“日誌顯示”的“WithLogger” subspec
pod 'DoraemonKit/WithLogger', '~> 1.0.0'
一個是不包含“日誌顯示”的“Core” subspec
pod 'DoraemonKit/Core', '~> 1.0.0'
預設引入“Core” subspec。
tip:為什麼要分割槽subspec呢? 因為日誌顯示模組是基於CocoaLumberjack這個三方庫,如果你的專案日誌不是基於CocoaLumberjack,那你就沒有必要引入DoraemonKit中日誌顯示模組了。
3.2: 使用DoraemonKit內建工具集的接入方式
在App啟動的時候新增一下程式碼
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { #ifdef DEBUG [[DoraemonManager shareInstance] addH5DoorBlock:^(NSString *h5Url) { //使用自己的H5容器開啟這個連結 }]; [[DoraemonManager shareInstance] install]; #endif }
通過以上步驟你就可以使用DorameonKit所有的內建工具集合。如果你想把自己與業務相關的一些工具程式碼加入到DoraemonKit中做統一管理的話,你可以按照3.3的步驟來做。
3.3: 新增自定義測試模組到Doraemon面板中(非必要)
比如我們要在Doraemon面板中新增一個環境切換的功能。
第一步:新建一個類,實現KDDoraemonPluginProtocol協議中的pluginDidLoad方法,該方法就是以後點選Doraemon工具面板中“環境切換”按鈕觸發的事件。
比如以代駕司機端為例,點選按鈕之後會進入環境切換頁面。
@implementation KDDoraemonEnvPlugin - (void)pluginDidLoad{ [APP_INTERACOTR.rootNav openURL:@"KDSJ://KDDoraemonSFViewController"]; [[DoraemonManager shareInstance] hiddenHomeWindow]; } @end
第二步:在Doraemon初始化的地方新增第一步中新增的“環境切換”外掛
呼叫DoraemonManager的以下方法:
[[DoraemonManager shareInstance] addPluginWithTitle:@"環境切換" icon:@"qiehuang" desc:@"用於app內部環境切換功能" pluginName:@"KDDoraemonEnvPlugin" atModule:@"業務專區"];
依次代表 整合到DoraemonKit面板中的標題,圖示,描述,外掛名稱,和所屬於的模組。
比如以代駕司機端為例:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { #ifdef DEBUG [self configDoraemonKit]; #endif } //配置Doraemon工具集 - (void)configDoraemonKit{ [[DoraemonManager shareInstance] addPluginWithTitle:@"環境切換" icon:@"qiehuang" desc:@"用於app內部環境切換功能" pluginName:@"KDDoraemonEnvPlugin" atModule:@"業務專區"]; [[DoraemonManager shareInstance] addH5DoorBlock:^(NSString *h5Url) { [APP_INTERACOTR.rootNav openURL:@"KDSJ://KDWebViewController" withQuery:@{@"urlString":h5Url}]; }]; [[DoraemonManager shareInstance] install]; }
DoraemonKit相關文件
ofollow,noindex" target="_blank">英文介紹