每日分享最新,最流行的軟體開發知識與最新行業趨勢,希望大家能夠一鍵三連,多多支援,跪求關注,點贊,留言。
考慮到測試中引入的進步,iOS 自動化工具對每個人來說都是一個新的挑戰。該平臺可以幫助輕鬆測試各種 iOS 裝置。
iOS 裝置銷量的逐年增長為 iOS 的成功樹立了高標準。然而,在測試這些裝置時,購買具有各種硬體規格的裝置和 iOS 裝置對於中小企業和初創公司來說並不可行。此外,由於可擴充套件性和低效率問題,有比手動測試更好的測試解決方案。
儘管 iOS 仍然是一個比 Android 更封閉的作業系統,但您可以使用各種免費和開源技術來構建有效的自動化測試。對於使用基於雲的測試解決方案的開發人員和測試人員而言,它使 iOS 應用程式測試活動更簡單、更高效。
以下是一些帶有程式碼示例的自動化測試框架,您可以使用它們來測試您的 iOS 應用程式。
Appium
作為最受歡迎的開源解決方案之一,Appium 可幫助使用者管理適用於 Android、iOS 和 Windows 的混合、移動或本機應用程式。它使開發人員和測試人員能夠為移動應用程式構建自動化測試,使他們能夠以更低的風險更快地生產高質量的軟體。
該應用程式的好處
Appium 是免費使用和開源的。
它支援所有與 WebDriver 相容的語言,如 Java、Objective-C 和 JavaScript。
它的開發人員使用與 Selenium 相同的 JSON 有線協議建立它,使 QA 測試人員和移動開發人員可以輕鬆進行轉換。
Appium 測試本機、行動網路和混合應用程式,並與 iOS 和 Android 作業系統相容。
它得到了一個規模龐大且活躍的社群的支援,為使用者提供持續的幫助和故障排除。
對於單元測試,選擇一個支援框架,如 XCTest 或 XCUITest。
它的跨平臺相容性使其能夠跨移動和線上渠道重用測試場景。
它是 iOS WebDriver 開發的基準。
應用缺點
透過要求使用者理解 Appium 架構和本機應用程式/選擇器的原則來增加學習曲線。
它取決於一系列開源部分,您必須在支援其他部分的版本中單獨安裝這些部分。
WebDriver 的 Appium 示例程式碼
driver。findElement(By。id(“com。example。app:id/radio0”))。click();
driver。findElement(By。id(“com。example。app:id/radio1”))。click();
driver。findElement(By。id(“com。example。app:id/radio2”))。click();
driver。findElement(By。id(“com。example。app:id/editText1”))。click();
driver。findElement(By。id(“com。example。app:id/editText1”))。sendKeys(“Simple Test”);
driver。findElement(By。name(“Answer”))。click();
Calabash
另一個相容 Android 和 iOS 應用程式的優秀跨平臺框架是 Calabash。用 Cucumber 編寫的 Calabash 測試是該框架與其他框架的主要區別之一:這意味著雖然測試是基本的且易於閱讀,但即使對於非技術人員,自動化系統仍然可以執行測試,因為我們將其編寫為規格。
Calabash程式碼示例
Feature: Answer the Question feature
Scenario: As a valid user I want to answer app question
I wait for text “What is the best way to test application on hundred devices?”
Then I press Radio button 0
Then I press Radio button 1
Then I press Radio button 2
Then I enter text “Simple Test” into field with id “editText1”
Then I press view with id “Button1”
Earl Gray
Earl Gray 是一個開源的 iOS UI 自動化框架,也是 Google 對 XCUITest 的迴應,用於測試 iOS 應用程式。只有 iOS 裝置可以使用 Earl Grey,開發人員必須使用 Swift 或 Objective-C 編寫測試。Earl Grey 的主要優勢在於它將 Espresso 的同步功能擴充套件到 iOS 應用程式自動化測試,確保自動化不會在應用程式正在使用時嘗試執行操作。
EarlGrey的優勢
易於直接或透過 CacaoPods 新增到 iOS 專案
具有有效內部元件同步功能的多功能框架
完整的框架是開源的。
結合 XCode
EarlGrey 示例程式碼
// Objective-C
- (void)testInvokeCustomSelectorOnElement {
[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@“id_of_element”)]
performAction:[GREYActionBlock actionWithName:@“Invoke clearStateForTest selector”
performBlock:^(id element, NSError *__strong *errorOrNil) {
[element doSomething];
return YES; // Return YES for success, NO for failure。
}
]];
}
XCUI test
在 iPad 和 iPhone 等 iOS 裝置上,XCUITest 是用於 UI 測試移動應用程式和線上應用程式的測試自動化框架。它是 Apple 測試基礎設施的一部分。
XCUITest 提供了一個框架,該框架支援以程式設計方式識別和與來自其他測試工具的 UI 元件進行互動。到 2022 年,唯一支援的 iOS UI 互動庫是 XCUITest,它取代了過時的 UIAutomator 技術。
XCUITest優勢
您可以使用 Swift 或 Objective-C 來編寫您的應用程式和測試程式碼,並且兩者都可以完全在 XCode 中修改並存儲在同一個儲存庫中。
由於XCUITest 和 iOS可以很好地協同工作,因此測試可能比使用競爭框架執行得更快。
透過在觀察使用者與連結的模擬器或真實裝置的互動的同時建立測試程式碼,XCode 的“記錄”功能可以進行測試。然後您可以修改記錄的測試程式碼以生成可信賴、可重複的測試,從而在測試建立期間節省時間。
測試人員可以使用 XCUITest 透過元素的標題、標籤、值或佔位符值來定位元素。僅出於測試目的,XCUIElements 還可以具有特定的“可訪問性識別符號”,使查詢元素變得快速而簡單。
XCUITest 缺點
您的團隊用於執行 XCUITest 的每臺計算機,包括測試計算機和 CI/CD 設定,都必須安裝 XCode。
最好使用 XCUITest 執行器執行測試;您不能獨立於 XCUITest 框架執行 XCUITest 程式碼。
Swift 和 object-C 是唯一可用的程式語言。
XCode 示例程式碼
- (void) testAdditionPerformance {
[self measureBlock:^{
// set the initial state
[calcViewController press:[calcView viewWithTag: 6]]; // 6
// iterate for 100000 cycles of adding 2
for (int i=0; i<100000; i++) {
[calcViewController press:[calcView viewWithTag:13]]; // +
[calcViewController press:[calcView viewWithTag: 2]]; // 2
[calcViewController press:[calcView viewWithTag:12]]; // =
}
}];
}
結論
嘗試設定您的測試功能是一項挑戰。此外,iOS 裝置測試需要專業知識。測試自動化平臺可以幫助測試 iOS 裝置。這些平臺可讓您連線到全球支援 SIM 卡的 iOS 裝置。透過此類平臺,您可以獲得可操作的見解,幫助您改進 iOS 應用程式。