use*_*895 3 ios ios-ui-automation
我有一个应用程序,我试图使用鸟枪方法自动调试(随机触摸应用程序很长一段时间).我目前正在使用UIAutomation和这个脚本:
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
target.delay(2);
window.tapWithOptions( { x:160.0, y:370.0 } );
target.delay(5);
for(i=0;i<=100000;i++)
{
xPoint = Math.floor(Math.random()*319+1)
yPoint = Math.floor(Math.random()*479+1)
window.tapWithOptions( { x:xPoint, y:yPoint } );
}
Run Code Online (Sandbox Code Playgroud)
这很有效,但不幸的是,当它最终崩溃时我没有调试信息让我知道为什么,无论如何我可以将XCode调试器绑定到这个自动化吗?
首先,如果你不介意无耻的插件,你可能会发现我的UI AutoMonkey项目很有用.它是一个随机生成具有各种可配置性的事件的工具,可以执行您所谓的"霰弹枪"测试.
因此,对于您的问题,可能会让仪器在崩溃发生时突破.它没有使用完整的调试器,但通过使用Allocations工具,我们可以告诉它启用NSZombie检测.
打开自动化模板后,请确保关闭应用程序并且不记录跟踪.打开仪器库并将Allocations仪器拖到时间线中.单击该仪器上的"i",确保选中"启用NSZombie Detection"复选框,如下所示:

然后,通过自动化测试来运行您的应用程序,如果它因内存问题崩溃,您将看到分配工具显示如下弹出窗口:

单击弹出窗口中的小箭头,您将跳转到触发僵尸的位置.崩溃时的堆栈位于右侧边栏中.您应该能够在该堆栈中的任何位置双击并查看发生内存崩溃的Objective C代码.有一些很棒的WWDC视频可以介绍如何使用Allocations乐器.我也建议你检查一下.
| 归档时间: |
|
| 查看次数: |
1885 次 |
| 最近记录: |