iOSモンキーテスト



Ios Monkey Test



iOSモンキーテスト

Monkeyは、Androidプラットフォーム用のコマンドラインツールです。キー入力、タッチスクリーン入力、ジェスチャー入力などの疑似ランダムイベントをシステムに送信して、開発者やテスターがアプリにストレステストを実装できるようにします。 Androidプラットフォームでは、Monkeyはソフトウェアの安定性と堅牢性をテストするための効果的な方法です。
それで、IOSプラットフォームのためのそのような良いツールはありますか?
答えは:はい。

次に、IOSMonkeyテスト環境の準備と実行について紹介します。



試験準備条件
  1. IOSアプリのソースコードのsvnパーミッションを申請する
  2. 会社のIOSアプリ開発者アカウントに申し込む
  3. Macマシンを準備し、xcodeを構成します
  4. iPhoneの携帯電話を用意します。
ステップ

仕事では、効率が非常に重要です。スクリプトを作成したので、最初にそれらを使用します。

  1. githubにアクセスして、iOSモンキースクリプトをダウンロードしますhttps://github.com/jonathanpenn/ui-auto-monkey



  2. 携帯電話とMacマシンを接続します

  3. xcodeを開き、ソースコードをテストマシンにコンパイルします

  4. xcodeから機器を起動します
    画像



  5. Instrumentから強力な自動化ツールを起動する
    画像

  6. jsスクリプトをインポートする
    画像

  7. 実行中のイベントの数とイベント間の間隔を設定します
    画像

  8. 電話機は、[設定]-[開発者向けオプション]-[UIオートメーションを有効にする]で自動化を有効にする必要があります。

  9. ウィンドウの上部で、テストするターゲットを選択します。これは、iPhoneのアプリです。

  10. ウィンドウの下部にある再生ボタンをクリックして、IOSMonkeyのストレステストを開始します。
    画像

スクリプト分析:

Automaitonツールでは、jsスクリプトが実行されます。このMonkeyスクリプトを見てみましょう。

スクリプトの構成を見てみましょう。コード行の先頭に、スクリプトでイベントイベントの数を指定できることがわかります。
numberofEvents:1000は、ランダムテスト中に実行されるイベントの数を示します。
delayBetweenEvents:0.05単位は秒で、2つのイベント間の間隔を表します。
画像

安定性テスト時間、通常は夜間に実行することを選択します。スクリプトは実行のタイミング機能を提供し、実行時間を設定できます。
minutesToRunのコメントを解除し、実行する時間数を設定します。また、numberofEventsを0に設定します。
画像

サルの実行中に、モンクスクリプトが前のレベルに戻れない状態になる場合があります。たとえば、アプリをテストして検索すると、アプリは小説の読書ページに入り、長時間読書状態になります。この状況ではサルのランダムテストの範囲が狭くなるため、この問題を解決する必要があります。モンキースクリプトは、この問題を解決するための戦略を提供します。 buttonHandler.jsを参照してください。

ANRは、アプリの実行中によく発生します。この問題は、Androidプラットフォームでのログ分析を通じて見つけることができます。 IOSモンキーは見つけることができないかもしれません、それはイベントを実行し続けます。この状況を回避するために、構成を変更して、MonkeyがANRを検出したときに例外をスローするようにすることができます。
スクリプトには、phingerprintFunctionオプションをtrueに設定するための構成があります。
デフォルトでは、フィンガープリントが1500イベントで変更されない場合、例外がスローされます。

画像

アプリの実行中に、アプリはスクリーンショットを撮ることができます。構成ファイルのスイッチをオンにするだけです。デフォルトでは、5秒ごとにスクリーンショットを撮ります。

画像

現在のスクリプトのイベントがテスト要件を満たせないことがわかった場合は、IOS Monkeyスクリプトを2回開発して、必要なイベントを追加できます。
現在の組み込みイベントは次のとおりです。
画像

タグ:クリック
ドラッグ:ドラッグアンドドロップ
フリック:フリック
向き:水平画面と垂直画面を切り替えます
clickVolumeUp:音量を上げます
clickVolumeDown:音量を下げます
ロック:ロック画面
pinchClose:ズームアウト
pinchOpen:ズームイン
シェイク:シェイク。

各イベントの後の数値が大きいほど、このイベントが発生する可能性が高くなります。

特定の領域でランダムイベントが発生すると予想される場合があり、ランダムイベントが実行される領域を設定できます。

画像

IOSモンキースクリプトの詳細な機能については、ソースコードを参照してください。