模拟主页按钮按 - iPhone测试

时间:2011-08-09 17:46:57

标签: iphone automated-tests uianimation

所以我正在测试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 个答案:

答案 0 :(得分:7)

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

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

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

  

UIATarget 类表示高级用户界面元素   被测系统(SUT) - 即您的应用程序,iOS和   他们正在运行的连接设备。你的测试脚本,   用JavaScript编写并与UI一起运行   自动化仪器,使用此类和相关的UIA类   运行SUT并记录结果。

使用UIATarget.localTarget().deactivateAppForDuration(seconds);,您可以将应用程序设置为n秒。

  

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:1)

我认为这不可能,但您可以使用

UIATarget.localTarget().deactivateAppForDuration(100);

将您的应用在后台投放特定时间。

答案 3 :(得分: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