考慮到測(cè)試中引入的進(jìn)步,IOS 自動(dòng)化工具對(duì)每個(gè)人來(lái)說(shuō)都是一個(gè)新的挑戰(zhàn)。該平臺(tái)可以幫助輕松測(cè)試各種 iOS 設(shè)備。
iOS 設(shè)備銷(xiāo)量的逐年增長(zhǎng)為 iOS 的成功樹(shù)立了高標(biāo)準(zhǔn)。然而,在測(cè)試這些設(shè)備時(shí),購(gòu)買(mǎi)具有各種硬件規(guī)格的設(shè)備和 iOS 設(shè)備對(duì)于中小企業(yè)和初創(chuàng)公司來(lái)說(shuō)并不可行。此外,由于可擴(kuò)展性和低效率問(wèn)題,有比手動(dòng)測(cè)試更好的測(cè)試解決方案。
盡管 iOS 仍然是一個(gè)比 Android 更封閉的操作系統(tǒng),但您可以使用各種免費(fèi)和開(kāi)源技術(shù)來(lái)構(gòu)建有效的自動(dòng)化測(cè)試。對(duì)于使用基于云的測(cè)試解決方案的開(kāi)發(fā)人員和測(cè)試人員而言,它使 iOS 應(yīng)用程序測(cè)試活動(dòng)更簡(jiǎn)單、更高效。
以下是一些帶有代碼示例的自動(dòng)化測(cè)試框架,您可以使用它們來(lái)測(cè)試您的 iOS 應(yīng)用程序。
Appium
作為最受歡迎的開(kāi)源解決方案之一,Appium 可幫助用戶(hù)管理適用于 Android、iOS 和 windows 的混合、移動(dòng)或本機(jī)應(yīng)用程序。它使開(kāi)發(fā)人員和測(cè)試人員能夠?yàn)橐苿?dòng)應(yīng)用程序構(gòu)建自動(dòng)化測(cè)試,使他們能夠以更低的風(fēng)險(xiǎn)更快地生產(chǎn)高質(zhì)量的軟件。
該應(yīng)用程序的好處
Appium 是免費(fèi)使用和開(kāi)源的。
它支持所有與 WebDriver 兼容的語(yǔ)言,如 JAVA、Objective-C 和 JavaScript。
它的開(kāi)發(fā)人員使用與 Selenium 相同的 JSON 有線(xiàn)協(xié)議創(chuàng)建它,使 QA 測(cè)試人員和移動(dòng)開(kāi)發(fā)人員可以輕松進(jìn)行轉(zhuǎn)換。
Appium 測(cè)試本機(jī)、移動(dòng)網(wǎng)絡(luò)和混合應(yīng)用程序,并與 iOS 和 Android 操作系統(tǒng)兼容。
它得到了一個(gè)規(guī)模龐大且活躍的社區(qū)的支持,為用戶(hù)提供持續(xù)的幫助和故障排除。
對(duì)于單元測(cè)試,選擇一個(gè)支持框架,如 XCTest 或 XCUITest。
它的跨平臺(tái)兼容性使其能夠跨移動(dòng)和在線(xiàn)渠道重用測(cè)試場(chǎng)景。
它是 iOS WebDriver 開(kāi)發(fā)的基準(zhǔn)。
應(yīng)用缺點(diǎn)
通過(guò)要求用戶(hù)理解 Appium 架構(gòu)和本機(jī)應(yīng)用程序/選擇器的原則來(lái)增加學(xué)習(xí)曲線(xiàn)。
它取決于一系列開(kāi)源部分,您必須在支持其他部分的版本中單獨(dú)安裝這些部分。
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
另一個(gè)兼容 Android 和 iOS 應(yīng)用程序的優(yōu)秀跨平臺(tái)框架是 Calabash。用 Cucumber 編寫(xiě)的 Calabash 測(cè)試是該框架與其他框架的主要區(qū)別之一:這意味著雖然測(cè)試是基本的且易于閱讀,但即使對(duì)于非技術(shù)人員,自動(dòng)化系統(tǒng)仍然可以執(zhí)行測(cè)試,因?yàn)槲覀儗⑵渚帉?xiě)為規(guī)格。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 是一個(gè)開(kāi)源的 iOS UI 自動(dòng)化框架,也是 google 對(duì) XCUITest 的回應(yīng),用于測(cè)試 iOS 應(yīng)用程序。只有 iOS 設(shè)備可以使用 Earl Grey,開(kāi)發(fā)人員必須使用 Swift 或 Objective-C 編寫(xiě)測(cè)試。Earl Grey 的主要優(yōu)勢(shì)在于它將 Espresso 的同步功能擴(kuò)展到 iOS 應(yīng)用程序自動(dòng)化測(cè)試,確保自動(dòng)化不會(huì)在應(yīng)用程序正在使用時(shí)嘗試執(zhí)行操作。EarlGrey的優(yōu)勢(shì)易于直接或通過(guò) CacaoPods 添加到 iOS 項(xiàng)目具有有效內(nèi)部組件同步功能的多功能框架完整的框架是開(kāi)源的。結(jié)合 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.}]];}

在 iPad 和 iphone 等 iOS 設(shè)備上,XCUITest 是用于 UI 測(cè)試移動(dòng)應(yīng)用程序和在線(xiàn)應(yīng)用程序的測(cè)試自動(dòng)化框架。它是 Apple 測(cè)試基礎(chǔ)設(shè)施的一部分。XCUITest 提供了一個(gè)框架,該框架支持以編程方式識(shí)別和與來(lái)自其他測(cè)試工具的 UI 組件進(jìn)行交互。到 2022 年,唯一支持的 iOS UI 交互庫(kù)是 XCUITest,它取代了過(guò)時(shí)的 UIAutomator 技術(shù)。XCUITest優(yōu)勢(shì)您可以使用 Swift 或 Objective-C 來(lái)編寫(xiě)您的應(yīng)用程序和測(cè)試代碼,并且兩者都可以完全在 XCode 中修改并存儲(chǔ)在同一個(gè)存儲(chǔ)庫(kù)中。由于XCUITest 和 iOS可以很好地協(xié)同工作,因此測(cè)試可能比使用競(jìng)爭(zhēng)框架運(yùn)行得更快。通過(guò)在觀(guān)察用戶(hù)與鏈接的模擬器或真實(shí)設(shè)備的交互的同時(shí)創(chuàng)建測(cè)試代碼,XCode 的“記錄”功能可以進(jìn)行測(cè)試。然后您可以修改記錄的測(cè)試代碼以生成可信賴(lài)、可重復(fù)的測(cè)試,從而在測(cè)試創(chuàng)建期間節(jié)省時(shí)間。測(cè)試人員可以使用 XCUITest 通過(guò)元素的標(biāo)題、標(biāo)簽、值或占位符值來(lái)定位元素。僅出于測(cè)試目的,XCUIElements 還可以具有特定的“可訪(fǎng)問(wèn)性標(biāo)識(shí)符”,使查找元素變得快速而簡(jiǎn)單。XCUITest 缺點(diǎn)您的團(tuán)隊(duì)用于運(yùn)行 XCUITest 的每臺(tái)計(jì)算機(jī),包括測(cè)試計(jì)算機(jī)和 CI/CD 設(shè)置,都必須安裝 XCode。最好使用 XCUITest 運(yùn)行器運(yùn)行測(cè)試;您不能獨(dú)立于 XCUITest 框架運(yùn)行 XCUITest 代碼。Swift 和 object-C 是唯一可用的編程語(yǔ)言。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]]; // =}}];}結(jié)論嘗試設(shè)置您的測(cè)試功能是一項(xiàng)挑戰(zhàn)。此外,iOS 設(shè)備測(cè)試需要專(zhuān)業(yè)知識(shí)。測(cè)試自動(dòng)化平臺(tái)可以幫助測(cè)試 iOS 設(shè)備。這些平臺(tái)可讓您連接到全球支持 SIM 卡的 iOS 設(shè)備。通過(guò)此類(lèi)平臺(tái),您可以獲得可操作的見(jiàn)解,幫助您改進(jìn) iOS 應(yīng)用程序。