<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          史上最全的 iOS 各種測(cè)試工具集錦!

          共 5068字,需瀏覽 11分鐘

           ·

          2024-04-11 13:06

          34c7599b4b98e62a5be8b3c6baa2d8b9.webp

          引言:

          隨著移動(dòng)互聯(lián)網(wǎng)的興起,APP 測(cè)試的越來越被重視!Android 系統(tǒng)因?yàn)樽约旱拈_源性,測(cè)試工具和測(cè)試方法比較廣為流傳,但是 iOS 系統(tǒng)的私密性,導(dǎo)致很多測(cè)試的執(zhí)行都有點(diǎn)麻煩。


          為了幫助大家更好的執(zhí)行 iOS APP 的測(cè)試,本文為大家收集了非常全面的  iOS 測(cè)試工具, 涵蓋各大領(lǐng)域,相信對(duì)大家會(huì)有所幫助!



          01 自動(dòng)化測(cè)試

          1、UIAutomation

          UIAutomation 是蘋果提供的 UI 自動(dòng)化測(cè)試框架,使用 JavaScript 編寫。


          基于 UIAutomation  有擴(kuò)展型的工具框架和驅(qū)動(dòng)型的框架 。擴(kuò)展型框架以 JavaScript 擴(kuò)展庫方法提供了很多好用 js 工具,注入式的框架通常會(huì)提供一些 Lib 或者是 Framework,要求測(cè)試人員在待測(cè)應(yīng)用的代碼工程中導(dǎo)入這些內(nèi)容,框架可以通過他們完成對(duì) app 的驅(qū)動(dòng)。


          驅(qū)動(dòng)型 UI Automation 在自動(dòng)化測(cè)試底層使用了 UI Automation 庫,通過 TCP 通信的方式驅(qū)動(dòng) UI Automation 來完成自動(dòng)化測(cè)試,通過這種方式,編輯腳本的語言不再局限于 JavaScript。

          這個(gè)工具在 iOS UI 自動(dòng)化測(cè)試中使用非常廣泛。


          2、XCTest

          XCTest 是蘋果在 iOS 7 和 Xcode5 引入的一個(gè)簡(jiǎn)單而強(qiáng)大的測(cè)試框架,集成在 Xcode 中, 用來編寫測(cè)試代碼 。它提供了各個(gè)層次的測(cè)試。

          07e9b3df2c3463e0f182fa77349ba7d7.webp

          XCTest 測(cè)試編寫起來非常簡(jiǎn)單,并且遵循 xUnit 風(fēng)格。Xcode 在創(chuàng)建工程時(shí),會(huì)默認(rèn)使用 XCTest,并且默認(rèn)創(chuàng)建了 Unit Test(單元測(cè)試)和 UI Test(界面測(cè)試)兩個(gè) Target;

          • 其中  Unit Test 主要用于測(cè)試代碼的大部分基本功能 ,比如絕大多數(shù) Model 的類和方法測(cè)試,業(yè)務(wù)邏輯測(cè)試,網(wǎng)絡(luò)接口調(diào)用測(cè)試等等。


          • UI Test 一般會(huì)考慮到用戶的交互流程,模擬用戶的交互操作,利用 XCTest 的 UI 記錄特性來獲取界面上的一些列視圖元素和操作事件,然后在測(cè)試方法中觸發(fā)事件。


          所以這是一個(gè)可以提供各個(gè)層次的測(cè)試的框架,比如單元測(cè)試,自動(dòng)化測(cè)試,性能測(cè)試等。

          4ce3b98633ef8d85638ad1f6422c5437.webp

          3、KIF

          KIF 是 Keep It Functional 項(xiàng)目的縮寫,是一款  iOS app 功能性測(cè)試框架 ,來自 Square,該測(cè)試框架只支持 iOS。


          另外,所有測(cè)試使用 Objective-C 語言編寫,對(duì)蘋果開發(fā)者來說非常容易上手,更是一款開發(fā)者廣為推薦的測(cè)試工具。


          KIF 使用未公開的 Apple API(私有 API),這對(duì)于測(cè)試目的而言是安全的,基于第三方 iOS UI 的單元測(cè)試框架,所以可以做項(xiàng)目的單元測(cè)試,也可以做 UI 集成測(cè)試。但缺點(diǎn)是運(yùn)行較慢。


          4、Frank

          Frank 是 iOS 開發(fā)環(huán)境下一款實(shí)現(xiàn)自動(dòng)測(cè)試的工具 ,Xcode 環(huán)境下開發(fā)完成后,通過 Frank 實(shí)現(xiàn)結(jié)構(gòu)化的測(cè)試用例,其底層語言為 Ruby,作為一款開源的 iOS 測(cè)試工具,在國外已經(jīng)有廣泛的應(yīng)用。但是國內(nèi)相關(guān)資料卻比較少。其最大的優(yōu)點(diǎn)是允許我們用熟悉的自然語言實(shí)現(xiàn)實(shí)際的操作邏輯。


          提供了針對(duì) iOS 平臺(tái)的功能測(cè)試能力 ,可以模擬用戶的操作對(duì)應(yīng)用程序進(jìn)行黑盒測(cè)試,并且使用 Cucumber 編寫測(cè)試用例,使測(cè)試用例如同自然語言一樣描述功能需求,讓測(cè)試以“可執(zhí)行的文檔”的形式成為業(yè)務(wù)客戶與交付團(tuán)隊(duì)之間的橋梁。


          • 優(yōu)點(diǎn):  測(cè)試場(chǎng)景是在 Cucumber 的幫助下,用可理解的英語句子寫的,還有活躍的社區(qū)支持,以及不斷擴(kuò)大中的庫

          • 缺點(diǎn): 對(duì)手勢(shì)的支持有限,所以在設(shè)備上運(yùn)行測(cè)試有點(diǎn)難


          5、Calabash-iOS

          Calabash 是一個(gè) 適用于 iOS 和 Android 開發(fā)者的跨平臺(tái) app 測(cè)試框架, 用來測(cè)試屏幕截圖、手勢(shì)和實(shí)際功能代碼。Calabash 開源免費(fèi)并支持 Cucumber 語言,Cucumber 能讓你用自然的英語語言表述 app 的行為,實(shí)現(xiàn) BDD(Behavior Driven Development,行為驅(qū)動(dòng)開發(fā))。

          c9522fda00617fd498ebc38ca6872d48.webp

          而 Calabash-iOS 就是一個(gè)基于 Calabash 的 iOS 的功能、自動(dòng)化測(cè)試框架。


          優(yōu)點(diǎn):

          • 有大型社區(qū)支持;

          • 列表項(xiàng)簡(jiǎn)單,類似英語表述的測(cè)試語句支持在屏幕上的所有動(dòng)作,如滑動(dòng),縮放,旋轉(zhuǎn),敲擊等

          缺點(diǎn):

          • 測(cè)試步驟失敗后,將跳過所有的后續(xù)步驟,這可能會(huì)導(dǎo)致錯(cuò)過更嚴(yán)重的產(chǎn)品問題

          • 測(cè)試耗費(fèi)時(shí)間 ,因?yàn)樗偸悄J(rèn)先安裝 app,需要 Calabash 框架安裝在 iOS 的 ipa 文件中, 因此測(cè)試人員必須要有 iOS 的 app 源碼

          • 除了 Ruby,對(duì)其他語言不友好


          6、Subliminal

          Subliminal 是另一款與 XCTest 集成的框架,也 是個(gè)不錯(cuò) iOS 集成測(cè)試框架。 與 KIF 不同的是,它基于  UIAutomation  編寫,對(duì)開發(fā)者隱藏 UIAutomation 中一些復(fù)雜的細(xì)節(jié)。可惜近幾年沒有更新了,若能支持 swift 就好了。


          7、Kiwi

          Kiwi 是對(duì) XCTest 的一個(gè)完整替代,使用 xSpec 風(fēng)格編寫測(cè)試。 Kiwi 帶有自己的一套工具集, 包括 expectations、mocks、stubs,甚至還支持異步測(cè)試。


          它是一個(gè)適用于 iOS 開發(fā)的 Behavior Driven Development(BDD)庫,有著非常漂亮的語法,優(yōu)點(diǎn)在于其簡(jiǎn)潔的接口和可用性,易于設(shè)置和使用,可以寫出結(jié)構(gòu)性強(qiáng)易讀測(cè)試,非常 適合新手開發(fā)者 。Kiwi 也是使用 Objective-C 語言編寫,易于 iOS 開發(fā)人員上手。


          8、Appium

          Appium 是一個(gè) 開源的、跨平臺(tái)的自動(dòng)化測(cè)試工具 ,支持 iOS、Android 和 FirefoxOS 平臺(tái)。通過 Appium,開發(fā)者無需重新編譯 app 或者做任何調(diào)整,就可以測(cè)試移動(dòng)應(yīng)用,可以使測(cè)試代碼訪問后端 API 和數(shù)據(jù)庫。

          f423de02749ba562d50e381691333bfa.webp

          它是通過驅(qū)動(dòng)蘋果的 UIAutomation 框架來實(shí)現(xiàn)的 iOS 平臺(tái)支持。開發(fā)者 可以使用 WebDriver 兼容的任何語言編寫測(cè)試腳本 ,如 Ruby,C#,Java, JS,OC, PHP,Python,Perl 和 Clojure 語言。



          02 iOS 性能測(cè)試

          1、Instruments

          Instruments 是 Xcode 自帶的,用來動(dòng)態(tài)跟蹤和分析 MacOS 和 iOS 代碼的實(shí)用工具,以獨(dú)立 APP 形式存在的工具集, 包含了很多強(qiáng)大的檢測(cè)功能: 其中包括在真機(jī)和模擬器上的 APP 進(jìn)行性能測(cè)試。


          主要功能有:

          • 分析程序進(jìn)程行為

          • 分析內(nèi)存分配及釋放細(xì)節(jié)

          • 查找 CPU 問題

          • 查找程序性能瓶頸

          • 檢查設(shè)備相關(guān)的功能

            比如:Wi-Fi、藍(lán)牙等

          • 查找 App 中的內(nèi)存問題

            比如內(nèi)存泄露(Leaked memory)、廢棄內(nèi)存(Abandoned memory)、僵尸(zombies)等


          2、第三方 SDK

          很多第三方的專門 用于性能檢測(cè)和用戶行為、屬性分析的 SDK ,比如 Bugly,OneAPM,聽云,F(xiàn)irebase Analytics,把它們接入項(xiàng)目可以短期內(nèi)達(dá)成性能檢測(cè)目標(biāo)。


          這些第三方的工具原理都是類似的, 利用 swizzle 的方法進(jìn)行 AOP(面向切面編程)處理 ,在關(guān)鍵函數(shù)之前和之后自動(dòng)埋點(diǎn)記錄上報(bào)。有的平臺(tái)也支持上傳符號(hào)表文件精確定位代碼執(zhí)行位置以及以埋點(diǎn)的方式手工添加日志記錄。使用起來還是比較方便的,基本上引入 SDK 和相關(guān)庫,在程序入口處啟動(dòng)檢測(cè)即可。


          然而 使用第三方 SDK 的缺點(diǎn) 也是非常明顯的:

          • 首先是缺乏定制性,我們需要的一些指標(biāo)的統(tǒng)計(jì) SDK 沒有,SDK 有的我們又不完全需要

          • 存在安全性問題 ,這些 SDK 涉及的統(tǒng)計(jì)數(shù)據(jù)都是 APP 的商業(yè)機(jī)密信息,對(duì)于有一定市場(chǎng)影響力的 APP 會(huì)有顧忌

          • 這類產(chǎn)品是收費(fèi)的 ,平時(shí)自己開發(fā)個(gè) demo 練手也不適合連這種 SDK



          03 iOS 調(diào)試工具

          • Xcode

          Xcode 是運(yùn)行在操作系統(tǒng) Mac OS X 上的集成開發(fā)工具(IDE),由 Apple Inc 開發(fā)。它是開發(fā) macOS 和 iOS 應(yīng)用程序的最快捷的方式。Xcode 具有統(tǒng)一的用戶界面設(shè)計(jì),編碼、調(diào)試、測(cè)試,都在一個(gè)簡(jiǎn)單的窗口內(nèi)完成。


          另外,Xcode 也可以用來測(cè)試 APP 的時(shí)候獲取 APP 的日志,分析 bug 和問題。


          • iTunes

          iTunes 是蘋果官方提供的一款工具,它在做 APP 測(cè)試的時(shí)候也可以提供手機(jī) APP 日志的方法。


          • ITools

          iTools 這個(gè)工具是一個(gè) 第三方的 iOS 測(cè)試工具 ,它跟 iTune 功能類似,但是比 iTunes 工具簡(jiǎn)單一些,簡(jiǎn)單易用的界面,可以從 iTunes 的繁瑣中解放。也可以提供安裝、卸載、備份、獲取日志等各種功能。



          03 內(nèi)測(cè)發(fā)布平臺(tái)

          • fir.im

          為開發(fā)者提供測(cè)試應(yīng)用極速發(fā)布,應(yīng)用崩潰實(shí)時(shí)分析、用戶反饋收集等一系列開發(fā)測(cè)試效率工具服務(wù),幫助開發(fā)者將更多精力放在產(chǎn)品的開發(fā)與應(yīng)用的優(yōu)化上。


          • 蒲公英

          『蒲公英』是專為 iOS、Android 開發(fā)者提供的免費(fèi)用應(yīng)用內(nèi)測(cè)、托管的平臺(tái),旨在解決開發(fā)者將應(yīng)用分發(fā)給內(nèi)測(cè)用戶時(shí)的繁雜、低效的問題。


          • TestFlight

          TestFlight 是蘋果提供的應(yīng)用測(cè)試工具,允許開發(fā)者邀請(qǐng)用戶對(duì)應(yīng)用的預(yù)發(fā)布版本進(jìn)行測(cè)試,從而在應(yīng)用正式發(fā)布至 App Store 前收集用戶反饋。

          如果覺得有用,就請(qǐng) 關(guān)注 、 點(diǎn)贊 在看 、 分享 到朋友圈吧!


          推薦閱讀:

          1. 重磅消息 | 2023年最新全棧測(cè)試開發(fā)技能實(shí)戰(zhàn)指南V2.0(第4期)

          2. 史上最全測(cè)試開發(fā)工具推薦(含自動(dòng)化、APP性能、穩(wěn)定性、抓包神器)

          3. 推薦幾款常用測(cè)試數(shù)據(jù)自動(dòng)生成工具(適用自動(dòng)化測(cè)試、性能測(cè)試)


          END

          a28c484c150941570048d18acfc6fdb1.webp 所有原創(chuàng)文章 第一時(shí)間發(fā)布至此公眾號(hào)「測(cè)試開發(fā)技術(shù)」

          長(zhǎng)按二維碼/微信掃碼  添加作者


          瀏覽 53
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99热日韩 | 欧美黄在线 | 国产一级黄片 | AV资源网在线观看 | 亚洲欧美日韩中文字幕精品国产 |