3

ショットガン アプローチを使用して自動的にデバッグしようとしているアプリがあります (長時間アプリにランダムに触れます)。現在、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 } );
}

これは機能しますが、残念ながら最終的にクラッシュした場合、その理由を教えてくれるデバッグ情報がありません.とにかく、XCodeデバッガーをこの自動化に結び付けることができますか?

4

1 に答える 1

6

まず、恥知らずなプラグインが気にならないのであれば、私のUI AutoMonkeyプロジェクトが役に立つかもしれません。これは、「ショットガン」テストと呼ばれるものを実行するために、あらゆる種類の構成可能性を備えたイベントをランダムに生成するツールです。

したがって、あなたの質問に対して、クラッシュが発生した時点でインストゥルメントを壊すことができるかもしれません。完全なデバッガーを使用しているわけではありませんが、Allocations インストゥルメントを使用することで、NSZombie 検出を有効にするように指示できます。

自動化テンプレートを開いた状態で、アプリケーションが閉じられていて、トレースが記録されていないことを確認してください。楽器ライブラリを開き、割り当て楽器をタイムラインにドラッグします。そのインストゥルメントの「i」をクリックし、「NSZombie 検出を有効にする」チェックボックスが次のようにチェックされていることを確認します。

NSZombie 検出を有効にする

次に、自動化テストを突っ込んでアプリを実行します。メモリの問題でアプリがクラッシュした場合は、割り当てインストゥルメントが次のようなポップアップを表示します。

ゾンビを見つける

ポップアップの小さな矢印をクリックすると、ゾンビがトリガーされた場所にジャンプします。クラッシュ時のスタックは右側のサイドバーにあります。そのスタック内の任意のポイントをダブルクリックすると、メモリ クラッシュが発生した目的の C コードを確認できるはずです。Allocations インストルメントの使用方法を説明する優れたWWDC ビデオがいくつかあります。そちらもチェックしてみることをお勧めします。

于 2012-11-20T06:04:52.867 に答える