考虑到测试中引入的进步,IOS 自动化工具对每个人来说都是一个新的挑战。该平台可以帮助轻松测试各种 iOS 设备。
iOS 设备销量的逐年增长为 iOS 的成功树立了高标准。然而,在测试这些设备时,购买具有各种硬件规格的设备和 iOS 设备对于中小企业和初创公司来说并不可行。此外,由于可扩展性和低效率问题,有比手动测试更好的测试解决方案。
尽管 iOS 仍然是一个比 Android 更封闭的操作系统,但您可以使用各种免费和开源技术来构建有效的自动化测试。对于使用基于云的测试解决方案的开发人员和测试人员而言,它使 iOS 应用程序测试活动更简单、更高效。
以下是一些带有代码示例的自动化测试框架,您可以使用它们来测试您的 iOS 应用程序。
作为最受欢迎的开源解决方案之一,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")]perfor
maction:[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 应用程序。