日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

史上最全的 iOS测试工具集锦(自动化、性能)

發布時間:2023/12/31 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 史上最全的 iOS测试工具集锦(自动化、性能) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言:

隨著移動互聯網的興起,APP 測試的越來越被重視!Android 系統因為自己的開源性,測試工具和測試方法比較廣為流傳,但是 iOS 系統的私密性,導致很多測試的執行都有點麻煩。

01 自動化測試

1、UIAutomation

UIAutomation 是蘋果提供的 UI 自動化測試框架,使用 JavaScript 編寫。

基于 UIAutomation 有擴展型的工具框架和驅動型的框架。擴展型框架以 JavaScript 擴展庫方法提供了很多好用 js 工具,注入式的框架通常會提供一些 Lib 或者是 Framework,要求測試人員在待測應用的代碼工程中導入這些內容,框架可以通過他們完成對 app 的驅動。

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

2、XCTest

XCTest 是蘋果在 iOS 7 和 Xcode5 引入的一個簡單而強大的測試框架,集成在 Xcode 中,用來編寫測試代碼。它提供了各個層次的測試。

XCTest 測試編寫起來非常簡單,并且遵循 xUnit 風格。Xcode 在創建工程時,會默認使用 XCTest,并且默認創建了 Unit Test(單元測試)和 UI Test(界面測試)兩個 Target;

其中 Unit Test 主要用于測試代碼的大部分基本功能,比如絕大多數 Model 的類和方法測試,業務邏輯測試,網絡接口調用測試等等。

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

所以這是一個可以提供各個層次的測試的框架,比如單元測試,自動化測試,性能測試等。

3、KIF

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

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

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

4、Frank

Frank 是 iOS 開發環境下一款實現自動測試的工具,Xcode 環境下開發完成后,通過 Frank 實現結構化的測試用例,其底層語言為 Ruby,作為一款開源的 iOS 測試工具,在國外已經有廣泛的應用。但是國內相關資料卻比較少。其最大的優點是允許我們用熟悉的自然語言實現實際的操作邏輯。

它提供了針對 iOS 平臺的功能測試能力,可以模擬用戶的操作對應用程序進行黑盒測試,并且使用 Cucumber 編寫測試用例,使測試用例如同自然語言一樣描述功能需求,讓測試以“可執行的文檔”的形式成為業務客戶與交付團隊之間的橋梁。

優點: 測試場景是在 Cucumber 的幫助下,用可理解的英語句子寫的,還有活躍的社區支持,以及不斷擴大中的庫

缺點:對手勢的支持有限,所以在設備上運行測試有點難

5、Calabash-iOS

Calabash 是一個適用于 iOS 和 Android 開發者的跨平臺 app 測試框架,可用來測試屏幕截圖、手勢和實際功能代碼。Calabash 開源免費并支持 Cucumber 語言,Cucumber 能讓你用自然的英語語言表述 app 的行為,實現 BDD(Behavior Driven Development,行為驅動開發)。

而 Calabash-iOS 就是一個基于 Calabash 的 iOS 的功能、自動化測試框架。

優點:

有大型社區支持;

列表項簡單,類似英語表述的測試語句支持在屏幕上的所有動作,如滑動,縮放,旋轉,敲擊等

缺點:

測試步驟失敗后,將跳過所有的后續步驟,這可能會導致錯過更嚴重的產品問題

測試耗費時間,因為它總是默認先安裝 app,需要 Calabash 框架安裝在 iOS 的 ipa 文件中, 因此測試人員必須要有 iOS 的 app 源碼

除了 Ruby,對其他語言不友好

6、Subliminal

Subliminal 是另一款與 XCTest 集成的框架,也是個不錯 iOS 集成測試框架。與 KIF 不同的是,它基于 UIAutomation 編寫,對開發者隱藏 UIAutomation 中一些復雜的細節。可惜近幾年沒有更新了,若能支持 swift 就好了。

7、Kiwi

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

它是一個適用于 iOS 開發的 Behavior Driven Development(BDD)庫,有著非常漂亮的語法,優點在于其簡潔的接口和可用性,易于設置和使用,可以寫出結構性強易讀測試,非常適合新手開發者。Kiwi 也是使用 Objective-C 語言編寫,易于 iOS 開發人員上手。

8、Appium

Appium 是一個開源的、跨平臺的自動化測試工具,支持 iOS、Android 和 FirefoxOS 平臺。通過 Appium,開發者無需重新編譯 app 或者做任何調整,就可以測試移動應用,可以使測試代碼訪問后端 API 和數據庫。

它是通過驅動蘋果的 UIAutomation 框架來實現的 iOS 平臺支持。開發者可以使用 WebDriver 兼容的任何語言編寫測試腳本,如 Ruby,C#,Java, JS,OC, PHP,Python,Perl 和 Clojure 語言。

02 iOS 性能測試

1、Instruments

Instruments 是 Xcode 自帶的,用來動態跟蹤和分析 MacOS 和 iOS 代碼的實用工具,以獨立 APP 形式存在的工具集,包含了很多強大的檢測功能:其中包括在真機和模擬器上的 APP 進行性能測試。

主要功能有:

分析程序進程行為

分析內存分配及釋放細節

查找 CPU 問題

查找程序性能瓶頸

檢查設備相關的功能

比如:Wi-Fi、藍牙等

查找 App 中的內存問題

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

2、第三方 SDK

很多第三方的專門用于性能檢測和用戶行為、屬性分析的 SDK,比如 Bugly,OneAPM,聽云,Firebase Analytics,把它們接入項目可以短期內達成性能檢測目標。

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

然而使用第三方 SDK 的缺點也是非常明顯的:

首先是缺乏定制性,我們需要的一些指標的統計 SDK 沒有,SDK 有的我們又不完全需要

存在安全性問題,這些 SDK 涉及的統計數據都是 APP 的商業機密信息,對于有一定市場影響力的 APP 會有顧忌

這類產品是收費的,平時自己開發個 demo 練手也不適合連這種 SDK

03 iOS 調試工具

Xcode

Xcode 是運行在操作系統 Mac OS X 上的集成開發工具(IDE),由 Apple Inc 開發。它是開發 macOS 和 iOS 應用程序的最快捷的方式。Xcode 具有統一的用戶界面設計,編碼、調試、測試,都在一個簡單的窗口內完成。

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

iTunes

iTunes 是蘋果官方提供的一款工具,它在做 APP 測試的時候也可以提供手機 APP 日志的方法。

ITools

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

03 內測發布平臺

fir.im

為開發者提供測試應用極速發布,應用崩潰實時分析、用戶反饋收集等一系列開發測試效率工具服務,幫助開發者將更多精力放在產品的開發與應用的優化上。

蒲公英

『蒲公英』是專為 iOS、Android 開發者提供的免費用應用內測、托管的平臺,旨在解決開發者將應用分發給內測用戶時的繁雜、低效的問題。

TestFlight

TestFlight 是蘋果提供的應用測試工具,允許開發者邀請用戶對應用的預發布版本進行測試,從而在應用正式發布至 App Store 前收集用戶反饋。

在這里還是要推薦下我自己建的軟件測試學習Q群: 746506216,群里都是學測試的,如果你想學或者正在學習測試,歡迎你加入,大家都是測試黨,不定期分享干貨(只有軟件測試相關的),包括我自己整理的一份2022最新的Python自動化測試進階資料和零基礎教學,歡迎進階中和對測試感興趣的小伙伴加入!

總結

以上是生活随笔為你收集整理的史上最全的 iOS测试工具集锦(自动化、性能)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。