我正在尝试使用UIAutomation仅适用于Simulator 5.0 的记录功能.在Simulator 4.3上
使用UIAutomation时,它运行完美.在Simulator 5.0上从Xcode运行我的应用程序时,它运行完美.这排除了应用程序本身崩溃的可能性.
我尝试重置模拟器Reset Content and Settings.我尝试从我的应用程序的"派生数据"文件夹中选择目标,或者从模拟器应用程序文件夹中选择目标,没有任何效果.
有任何想法吗?
使用仪器上的UIAutomation进行测试非常棒,但是,它周围的文档和资源要么不存在,要么隐藏.有哪些帮助您在项目中实现此功能的最佳资源(文档,博客文章,Stack Overflow问题)?野外有没有好的开源测试脚本?
我正在尝试使用UIAutomation测试UIAlertView的存在,但我的处理程序永远不会被调用.
在我的javascript开头我写道:
UIATarget.onAlert = function onAlert(alert) {
UIALogger.logMessage("alertShown");
return false;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,只要我指定了我的onAlert函数,就应该在我的测试期间出现alertView时调用它.所以我运行一个显示alertView的测试,这是显示警报的代码:
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:message message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
alertView.accessibilityLabel = @"alerte d'avertissement";
[alertView show];
Run Code Online (Sandbox Code Playgroud)
我在仪器中运行我的测试,警报显示但我的处理程序从未被调用.有没有人能够使用UIAutomation的事件处理程序?
谢谢,文森特.
我正在使用ios uiautomation测试应用程序,我需要验证一些静态文本控件的颜色.这可能吗?我没有看到任何允许访问文本样式的方法或属性.
当我尝试在iOS 5设备上运行UI Automation脚本时,我收到以下错误:
"尝试运行脚本时发生错误."

相同的脚本在模拟器或iOS 4.3.3设备上运行完美.
我怎么解决这个问题?
我试图访问value()的UIAStaticText(一个UILabel在客观C代码)JavaScript对象.我可以设置好的值setValue(),我可以确认模拟器更新文本,但当我尝试获取值时,我只能得到null.
即
text.setValue("new text");
Run Code Online (Sandbox Code Playgroud)
将标签更新为模拟器中的"新文本".
text.value()
Run Code Online (Sandbox Code Playgroud)
null在设置值后仍然返回.
我在这做错了什么?
我正在尝试为iOS项目进行端到端自动化.我的目标是通过附加脚本作为后期构建操作来自动化持续集成过程.因此,当用户在SVN中检查他的代码并且直到我们获得自动化的测试结果时,一切都将自动化.UIAutomation
Jenkins安装在我的本地计算机上并运行localhost.
现在我已经完成了自动构建过程jenkins,另一方面我准备好了shell脚本,它将UIAutomation在构建输出上运行java脚本.
当我使用我的shell脚本作为后期构建操作时,我在运行instrument命令时遇到错误(在shell脚本中编写),但如果我通过终端手动运行此脚本,那么它工作正常.
instruments[64703:60f] -[NSAlert alertWithError:] called with nil NSError. A generic error message will be displayed, but the user deserves better.
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. Mon Feb 6 13:15:20 inpunml310743 instruments[64703] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged. 2012-02-06 13:15:20.179 instruments[64703:60f] Recording cancelled : At least one target failed …Run Code Online (Sandbox Code Playgroud) 所以我有了这个想法,使用UI自动化在我的应用上测试我的屏幕跟踪(使用Google Analytics)的实现.
最初的想法是构建一个UI脚本来浏览屏幕,同时检查是否正在相应地发送跟踪事件.我需要这个,因为有时我无法从视图控制器中编写所有内容,或者事件不按预期顺序转发.无论如何,我应该测试我的应用程序的这个方面,我认为UI自动化是答案.
我已经使用UI自动化工具实现了一个脚本来浏览屏幕,这是正常的.我甚至使用了调整js来使代码更简化,更容易理解.我期待有类似的东西(一般来说,语法只是简化):
Being on screen X
Tap button A
Expect screen Y and tracking event for the screen Y
Run Code Online (Sandbox Code Playgroud)
但是,就我能够检查而言,测试屏幕跟踪是UI自动化无法实现的.或者我错过了什么?
我想创建一个不可见的视图,它保持在所有视图层次结构的顶部,并在每次加载新屏幕时更改其名称,以允许我使用UI自动化测试它,但这个想法听起来有点超过顶部......
你们的人建议什么?寻找另一个UI自动化工具?改为使用单元测试吗?
在此先感谢您的帮助
我有一个带有两个子视图的视图,一个按钮和一个图像,我打开辅助功能并在子视图上设置标签,我可以通过调用看到层次结构
UIATarget.localTarget().frontMostApp().mainWindow().logElementTree();
Run Code Online (Sandbox Code Playgroud)
我得到以下例子:
1个窗口
2我的观点
3我的按钮
3我的形象
如果我然后打开辅助功能并为我的父视图设置标签,我将无法再在层次结构中的任何位置看到我的按钮和图像.
我得到:
1个窗口
2我的观点
为什么我的观点消失了?
自升级到Xcode6以来,我们在模拟器上进行的iOS自动化测试已经发生了灾难.我们可以观察到视图切换速度减慢,UIAutomation也感觉到它并经常返回一个空的或未完全更新的应用程序主窗口,你可以想象稳定性.
部分原因是我们的VM速度很慢,但我们仍然需要找到解决方法.
然后我注意到CoreSimulatorService进程在启动和关闭模拟器之间保持活跃.所以我杀了它,看看会有什么变化:
killall -9 com.apple.CoreSimulator.CoreSimulatorService
Run Code Online (Sandbox Code Playgroud)
它被杀死并重新启动后,模拟器的性能似乎变得更好,至少我看不到随机失败了(希望如此).我想这有点清理.
所以我希望能更好地了解CoreSimulatorService的功能是什么?
此外,当Apple发布新内容时,我很困惑在哪里找到文件(原谅我的无知).例如,除了Xcode Release Note之外,我没有在iOS开发者库中找到提及simctl的任何文档.
谢谢!
ios ×7
iphone ×4
instruments ×3
objective-c ×2
xcode ×2
cocoa-touch ×1
javascript ×1
jenkins ×1
macos ×1
shell ×1
testing ×1
xcode4 ×1
xcode6 ×1