1

PhoneGap Sencha Touch ベースのモバイル ハイブリッド アプリケーションがあります。自動化テストで MonkeyTalk を使用したいと考えています。誰かが私を助けることができますか?前もって感謝します。

monkeytalk-1.0.40 をインストールしました。問題なく動作します。これにより、ネイティブ アプリケーションを非常にうまくテストできます。

私は PhoneGap でハイブリッド アプリケーションを構築しました。これは非常にシンプルで、唯一のコードは Sencha Touch のサンプル ページをロードすることです: super.loadUrl(" http://dev.sencha.com/deploy/touch/examples/production/index. html ");

また、MonkeyTalk のユーザー ガイド (www.gorillalogic.com/monkeytalk-documentation/monkeytalk-getting-started/install-agent/android) に従ってすべてを行いました。

次に、すべての準備が整い、単純なハイブリッド アプリケーションがデバイス シミュレーターにデプロイされます。MonkeyTalk IDE もアプリケーションに接続できます。いくつかのアクション (フィールドをタップしてその中にいくつかの文字を入力) を記録しますが、一部の「WebView * タップ」アクションのみが記録されます (タップ位置情報なし)。再生すると、いくつかのタップ アクションも再生できますが、位置がないとタップ位置が正しくありません。

そのため、いくつかのアクションを手動で作成する必要があります。「ラベル タップ」アクションが機能することもありますが、間違った要素をタップすることもあります。フォーム ページ (キッチン シンク -> ユーザー インターフェイス -> dev.sencha.com/deploy/touch/examples/production/index.html のフォーム) に移動すると、フィールド、UI 全体をタップするアクションを実行しました。画面の左隅に移動しました。非常に奇妙です。そして、「名前」フィールドにテキストを送信しようとしましたが、何も起こりませんでした。

何が問題か知っていますか?修正することは可能ですか?どうすればいいですか?

本当にありがとう!

4

2 に答える 2

0

Sencha を使用して構築されたアプリは、Steve McGarret が言ったようにテストするのが最も簡単ではありませんが、MonkeyTalk は、ドキュメントの Web ページで説明されている代替方法を使用して仕事を完了します。

MonkeyId は、#N 形式の 1 ベース (0 ベースではない) のインデックスとして指定することもできます。この場合、MonkeyId は、現在表示されている指定されたタイプの N 番目のコンポーネントを識別します。コンポーネントは、左上端の位置に従ってインデックス付けされます。つまり、コンポーネントを (x,y) 座標でソートすることによってインデックスが付けられます。

ユーザーの登録を自動化するとします。ページにはおそらく複数の入力フィールドが含まれますが、別のビューに移動すると変更されるため、それらの ID は使用できません。できることは次のとおりです。

  • chrome を開き、Web インスペクター (chrome://inspect/#devices) を使用して必要な要素を探します。プロパティ「name」と値「firstName」を持つ入力ボックスを想定しましょう。
  • MonkeyTalk に移動し、コンポーネント ツリーを開きます。「入力」という単語でフィルタリングします。
  • ツリー内の位置 (例: 3) を書き留めて、スクリプトの作成を開始します。
    • 入力 #3 EnterText ジョン
    • 入力 #4 EnterText Do
    • (...)

以上です。MonkeyTalk はスクリプトを完璧に再生します。他の誰かがコンポーネント ツリー内の要素の位置を取得するためのより良い解決策を持っている場合は、私に知らせてください。それ以外の場合、ページに多数の div/要素があり、手間をかける価値がない場合、かなり面倒なプロセスになります。別のテスト フレームワークを使用することもできます。

于 2015-02-22T17:28:38.423 に答える
0

私はかなり長い間、MonkeyTalk と Sencha を使用していました。私の知る限り、MonkeyTalk は現在のビューのすべての (Web-)Element に対して独自の ID (MonkeyID) を作成します。要素が MonkeyID を取得すると、残りのテストの間それを保持します。問題は、そもそも Sencha がその WebElements に対して一意の ID を作成しないことです。それは単に非論理的であるため、混乱を招きます。

とにかく、Sencha が行うことは、現在のビューでのみ一意になるように一般的な ID を生成することです。別のビューに切り替えて後で戻ってくると、すべての要素の ID が異なる場合があります。Sencha の設定でこれを変更できるかもしれません...

そのため、MonkeyTalk はこれらの要素の MonkeyID を作成できず、MonkeyID は Monkeytalk が要素とやり取りする唯一の方法ですが、要素をクリックしたり、テキストを送信したり、他の方法でやり取りしたりすることはできません。これまでのところ、Sencha アプリを自動化する唯一の解決策は、XPath を使用して Element のラベルを参照することです。残念ながら、MonkeyTalk はそれをサポートしていません...

于 2014-07-21T10:06:36.147 に答える