4

私はIOSプログラミングに非常に慣れていません。テスト用にUIを自動化できるかどうかを確認するタスクがあります。これが私がやりたいことです:

  • 画面上のコントロールにイベントメッセージをランダムに(悪いように聞こえますが、事前定義されたイベントである可能性があります)送信するコードをアプリケーションに配置します。

  • これは単なるコードなので、アプリを取得して、iPhoneまたはiPadにデプロイし、プログラムを実行できるはずです。

  • アプリが私のコードによって完全に自動化されると、取得したパフォーマンスデータの分析を簡単に実行できるようになると思います。

FoneMonkeyを見たことがありますが、各デバイスに手動で記録されたユーザー操作が必要なようです。

任意の考えや提案を歓迎します。

  • ラリス
4

7 に答える 7

5

こんにちはラリス私はアプリケーションのいくつかの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/

さらにサポートが必要な場合は、お知らせください。:)

編集1:

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];
}
于 2011-07-22T00:23:36.553 に答える
4

Appleには、計測器とアクセシビリティAPIを介したJavaScriptベースの自動化のためのフレームワークがあります。100%最高というわけではありませんが、一見の価値があります。

Instruments +実際に指で電話に触れることは、「現実の世界」でもパフォーマンス分析を行うための非常に良い方法です。

一般的に、UIテストを自動化する価値はありません。通常、UIの変更が多すぎて、機能仕様の動作が価値よりも低くなります。YMMV。

于 2011-07-21T23:07:06.363 に答える
4

快適なポイントに到達したら、このKIFフレームワークを見ていきます。

Keep It Functionalの略であるKIFは、iOS統合テストフレームワークです。OSが視覚障害を持つ人々に利用可能にするアクセシビリティ属性を活用することにより、iOSアプリの簡単な自動化を可能にします。

于 2011-07-22T04:21:41.877 に答える
2

親を作成し、UIViewそれに「子」またはサブビューを追加できます。サブビューには、アプリケーションUIが含まれています。

親ビューは透明になるように設定されており、タッチをキャプチャしてログに記録します。ログに記録されると、タッチイベントはサブビューに渡されます。ここにテストタッチを送信できます。

親ビューは透過的であるため、ユーザーには表示されませんが、タッチイベントをキャプチャして処理します。

これを設定するには、かなりの量のサブクラス化が必要であり、一部のクラス(などUIWebView)では問題が発生します。しかし、それは実行可能かもしれません。

于 2011-07-21T22:43:55.527 に答える
0

ご協力ありがとうございます。コメントで述べたように、iOSデバイスでスタンドアロンとして実行できるはずです。ここで説明するように、sendActionsForControlEventsを使用できます。今のところ必要なのはこれだけです。

于 2011-07-22T22:05:38.243 に答える
0

ExperitestのSeeTestを検討できます。これには、非常に簡単な記録および再生機能が付属しています。

于 2011-07-24T15:17:09.983 に答える
0

私はiOSの自動化にIMATを非常にうまく使用しています。

https://code.intuit.com/sf/sfmain/do/viewProject/projects.ginsu

私が好きな理由:

  1. これは、Appleが提供するjavascript自動化の上に構築されており、Instrumentsまたはコマンドラインから開始できます。
  2. これは、JavaScript iOS自動化のテストランナー(N-Unitと考えてください)を提供します
  3. UI要素を取得するためのきちんとしたメカニズムを提供します(他の自動化ツールで使用されるオブジェクトマップと同様)
  4. アプリコードを変更する必要はありません(特定のライブラリを使用してビルドしたり、コードをインストルメントしたりする必要はありません)
  5. plistファイルを読み取ってテストを実行した後、jUnitのようなレポートを提供します。これは、私のCIツール(Teamcity、Jenkins、CruiseControl)によって取得されます。
于 2012-08-01T17:39:01.997 に答える