4

所以我正在测试一个 iPhone 应用程序。我正在尝试设置我们以后可以使用 UIAutomation 使用的测试用例(我并没有真正受制于此 - 我可以切换到其他一些框架)。我基本上需要创建一个类似的测试:

+ Launches application
+ Clicks a few specific buttons
+ Hits the home button exiting the application
+ Relaunches the application
+ Checks the status of the application

有谁知道如何做到这一点或使用什么框架来做到这一点?

提前致谢。

4

4 回答 4

7

您无法模拟按下主页按钮,但您可以强制应用程序退出。调用[[UIApplication sharedApplication] terminate];将终止或(在 iOS 4.x 的情况下)后台应用程序。但是,您将无法使用 UIAutomation 重新启动应用程序。

您可以尝试将 UIAutomation 与允许您重放鼠标移动和点击的屏幕录制脚本结合使用。这将允许您直接与模拟器进行交互,例如主页按钮点击和应用程序图标点击。

或者,您可以使用UIATargetclass进行“足够好”的测试。根据文档,

UIATarget类代表被测系统 (SUT) 的高级用户界面元素,即您的应用程序、iOS 以及运行它们的连接设备。您的测试脚本用 JavaScript 编写并与 UI 自动化工具一起运行,使用此类和相关的 UIA 类来练习 SUT 和记录结果。

使用UIATarget.localTarget().deactivateAppForDuration(seconds);您可以将您的应用程序后台运行 n 秒。

使用此方法来测试将您的应用程序移入和移出后台执行上下文。请注意,使用 iOS SDK 4.0 或更高版本构建并在 iOS 4.0 及更高版本中运行的应用程序不一定会在用户按下 Home 按钮时终止。有关多任务和后台执行上下文的详细信息,请参阅 iOS 应用程序编程指南。

于 2011-08-09T18:01:48.580 回答
3

可以在 Xcode 7 中通过 UI 测试按下主页按钮。

XCUIDevice.sharedDevice().pressButton(XCUIDeviceButton.Home)

来源:https ://stackoverflow.com/a/33087217/142358

于 2016-07-20T14:27:14.247 回答
1

我认为这是不可能的,但你可以使用

UIATarget.localTarget().deactivateAppForDuration(100);

将您的应用程序置于后台特定时间。

于 2011-08-09T18:01:35.753 回答
0

在 iOS 中按下设备主页按钮

def hit_home
  home =`osascript -e 'tell application "System Events" to tell process "iOS Simulator"' -e'keystroke "H" using command down' -e'delay 2' -e'end tell'`
  puts("home button exits - #{home.to_i}")
end
于 2017-05-23T12:29:27.653 回答