我是IOS编程的新手。我有一个任务是找到我是否可以自动化我的UI进行测试。这就是我想要做的事情:
在我的应用程序中随机添加一些代码(声音不好但可能是预定义的事件)将事件消息发送到屏幕上的控件。
由于这只是代码,我应该可以使用该应用,将其部署在任何iPhone或iPad中并运行该程序。
一旦我的代码完全自动化应用程序,我想可以很容易地对获得的效果数据进行分析。
我见过FoneMonkey,但看起来需要在每台设备上手动记录用户交互。
欢迎任何想法或建议。
答案 0 :(得分:5)
Hello Lalith我一直在为应用程序创建一些UI自动化测试,并且它的工作非常好。虽然它有一些技巧,但我认为你应该看看这些链接:
http://answers.oreilly.com/topic/1646-how-to-use-uiautomation-to-create-iphone-ui-tests/
http://alexvollmer.com/posts/2010/07/03/working-with-uiautomation/
如果您需要更多帮助,请告诉我们。 :)
Edit1:
在viewController的viewDidLoad上,你可以添加如下内容:
- (void)viewDidLoad {
[super viewDidLoad];
//(Your code...)
// I set it to start after 5 seconds...
[self performSelector:@selector(startTest) withObject:nil afterDelay:5];
}
-(void)startTest{
//took this from the link you posted
[myButton sendActionsForControlEvents:UIControlEventTouchUpInside];
}
编辑2:
if([myTextField canBecomeFirstResponder]){
[myTextField becomeFirstResponder];
}
答案 1 :(得分:4)
Apple有一个基于javascript的自动化框架,通过仪器和辅助功能API。它不是最好的100%,但值得一看。
乐器+实际用手指触摸手机是一种非常好的方法,可以“在现实世界中”进行性能分析。
通常,我没有发现自动化UI测试是值得的。用户界面通常会发生太大变化,无法使功能规格的工作量减少。 YMMV。
答案 2 :(得分:4)
一旦你达到了一个你觉得舒服的地步,我会看一下KIF framework。
KIF代表Keep It Functional,是iOS集成测试 框架。通过利用它,它可以轻松实现iOS应用程序的自动化 操作系统为那些具有的可访问性属性 视力残疾。
答案 3 :(得分:2)
您可以创建一个父级UIView
,您可以在其中添加“子级”或子视图。子视图包含您的应用程序UI。
父视图设置为透明,它捕获触摸并记录它们。记录后,触摸事件将传递给子视图。你可以在这里发送测试信息。
由于父视图是透明的,因此用户永远不会看到它,但它仍会捕获并处理触摸事件。
设置它会涉及相当数量的子类,而某些类(例如UIWebView
)会带来困难。但这可能是可行的。
答案 4 :(得分:0)
感谢您的帮助。正如我在评论中提到的,我应该能够在IOS设备中独立运行它们。我们可以使用here所述的sendActionsForControlEvents。 这就是我现在所需要的一切。
答案 5 :(得分:0)
您可以考虑SeeTest from Experitest,它具有非常简单的录制和重播功能。
答案 6 :(得分:0)
我一直非常成功地使用IMAT进行iOS自动化。
https://code.intuit.com/sf/sfmain/do/viewProject/projects.ginsu
我喜欢它的原因: