考慮到測試中引入的進步,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 featureScenario: As a valid user I want to answer app questionI wait for text "What is the best way to test application on hundred devices?"Then I press Radio button 0Then I press Radio button 1Then I press Radio button 2Then 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 項目具有有效內部組件同步功能的多功能框架完整的框架是開源的。結合 XCodeEarlGrey 示例代碼// 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 2for (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 應用程序。