版本記錄
版本號(hào) | 時(shí)間 |
---|---|
V1.0 | 2017.06.24 |
前言
我們?cè)谧鯽pp的時(shí)候舀凛,不是做完功能就結(jié)束了,很多時(shí)候是需要進(jìn)行檢查和優(yōu)化的途蒋,而xcode自帶了一個(gè)很好的檢查工具猛遍,可以檢測(cè)內(nèi)存泄漏。還可以查看哪一個(gè)方法比較耗時(shí)。還可以檢測(cè)離屏渲染等等懊烤,隨后的幾篇我們就說(shuō)一下這個(gè)工具的使用梯醒。感興趣的可以看這幾篇。
1.INSTRUMENTS調(diào)試工具的使用(一)
2.INSTRUMENTS調(diào)試工具的使用(二)
3.INSTRUMENTS調(diào)試工具的使用(三)
4.INSTRUMENTS調(diào)試工具的使用(四)
5.INSTRUMENTS調(diào)試工具的使用(五)
6.INSTRUMENTS調(diào)試工具的使用(六)
7.INSTRUMENTS調(diào)試工具的使用(七)
8.INSTRUMENTS調(diào)試工具的使用(八)
9.INSTRUMENTS調(diào)試工具的使用(九)
這一篇就先說(shuō)一下線程與自動(dòng)化測(cè)試(利用腳本)相關(guān)腌紧。
二十六冤馏、Threads/Locks Instruments[線程相關(guān)]
以下 instruments 收集線程相關(guān)的數(shù)據(jù)。
Java線程(Java Thread)
Java Thread instrument 工具記錄 Java 線程的初始化和銷毀寄啼。它顯示:
- 每個(gè)測(cè)量的時(shí)間
- 總線程數(shù)
你可以指定特定顏色標(biāo)示線程運(yùn)行時(shí)逮光,等待,和阻塞的狀態(tài)墩划。
二十七涕刚、UI Automation[界面自動(dòng)化相關(guān)]
使用Automation Instrument工具
??Automation instrument 工具允許你讓 iOS 應(yīng)用的用戶界面測(cè)試自動(dòng)化。自動(dòng)化 界面測(cè)試可以讓你:
- 省去關(guān)鍵人員和釋放其他工作資源
- 執(zhí)行更多綜合測(cè)試
- 開(kāi)發(fā)可重復(fù)的回歸測(cè)試
- 減少程序錯(cuò)誤
- 高開(kāi)發(fā)周期乙帮,產(chǎn)品更新
?? Automation instrument 工具由你的測(cè)試腳本指導(dǎo)杜漠,演示你應(yīng)用的用戶界面元素, 允許你記錄分析結(jié)果察净。自動(dòng)化功能可以模擬許多用戶設(shè)備支持的用戶操作驾茴。Automation instrument 工具的一個(gè)最大的好處是可以可以和其他 instruments 工具一起執(zhí)行復(fù)雜的測(cè)試,比如跟蹤內(nèi)存泄露和隔離性能問(wèn)題的原因氢卡。
注意:為了保護(hù)锈至,該 instrument 工具不允許你處理任何和你證書(shū)不相關(guān)的進(jìn)程。這包括拷 貝任何在 iTunes App Store 下載的應(yīng)用译秦。
重要:模擬動(dòng)作可能無(wú)法防止測(cè)試設(shè)備自動(dòng)鎖定屏幕峡捡。所以在設(shè)備上運(yùn)行測(cè)試之前,你應(yīng)該 設(shè)置設(shè)備的 Auto-Lock 偏好設(shè)置為 Never(設(shè)置->通用->自動(dòng)鎖定->永不)筑悴。
輸出測(cè)試結(jié)果和數(shù)據(jù)
?? 你的腳本報(bào)告日志信息給 Automation instrument 工具们拙,而 instrument 工具收 集并報(bào)告給你分析結(jié)果。
?? 當(dāng)編寫(xiě)你測(cè)試腳本時(shí)阁吝,如果為了幫你診斷出現(xiàn)的任何故障的地方砚婆,你應(yīng)該盡可能 的輸出更多的信息。最低限度是當(dāng)每個(gè)腳本開(kāi)始和結(jié)束突勇,確定測(cè)試執(zhí)行装盯,并記錄通過(guò) 和失敗狀態(tài)時(shí),你應(yīng)該輸出日志与境。這種最小記錄在 UI 自動(dòng)化的自動(dòng)完成的验夯。你只需 要簡(jiǎn)單的使用你的測(cè)試腳本的名稱來(lái)調(diào)用 logStart,運(yùn)行你的測(cè)試腳本摔刁,然后合適 的時(shí)候調(diào)用 logPass 或者 logFail挥转。
二十八、User Interface Instruments[用戶界面相關(guān)]
以下的 instruments 工具為應(yīng)用層事件收集數(shù)據(jù)。
Cocoa事件(Cocoa Events)
??Cocoa Events instrument 工具記錄通過(guò) NSApplication 類 sendEvent:方法發(fā)送事件绑谣。該方法是分配事件給 Cocoa 應(yīng)用的主要方法党窜。你可以使用該 instrument 工具 來(lái)把應(yīng)用程序事件和其他應(yīng)用程序行為關(guān)聯(lián)起來(lái),比如內(nèi)存和 CPU 占有率等借宵。該 instrument 工具運(yùn)行在當(dāng)個(gè)進(jìn)程之上幌衣。它的實(shí)現(xiàn)使用了 DTrace 技術(shù),并且可以導(dǎo)入 DTrace 腳本壤玫。
??該 instrument 工具捕獲被發(fā)送事件的類型豁护。跟蹤面板可以被設(shè)置來(lái)顯示以下任何數(shù)據(jù)信息:
- 棧深度(Stack depth)
- 線程 ID(Thread ID)
- 事件種類(The Event Kind)
Carbon事件(Carbon Events)
??Carbon Events instrument 工具記錄由 Carbon Event Manager 里面的函數(shù) WaitNextEvent 返回的事件。你可以使用該 instrument 來(lái)把應(yīng)用的事件和其他應(yīng)用 的行為關(guān)聯(lián)起來(lái)欲间,比如內(nèi)存和 CPU 占用率等楚里。該 instrument 工具運(yùn)行在單個(gè)進(jìn)程之 上。它的實(shí)現(xiàn)使用了 DTrace 技術(shù)猎贴,并可以導(dǎo)入 DTrace 腳本班缎。
??該 instrument 工具捕獲發(fā)送事件的類型。跟蹤面板可以被設(shè)置來(lái)顯示以下數(shù)據(jù)信息:
- 棧深度(Stack depth)
- 線程 ID(Thread ID)
- 事件種類(The Event Kind)
后記
??關(guān)于instruments的界面以及基礎(chǔ)工具的介紹就先寫(xiě)這么多了她渴,以后會(huì)增加具體使用時(shí)的用例达址,這樣理論結(jié)合工程原碼更能大家深入理解,instruments工具非常強(qiáng)大和有意思趁耗,感興趣的可以看一下沉唠。