フレックス:クリック レベルで UI コンポーネントをテストしますか?
-
13-09-2019 - |
質問
私は Flex コンポーネントに取り組んでおり、そのための自動テストをいくつか書きたいと考えています。問題は、私が検討した UI テスト ツールです (フレックスモンキー そして Selenium フレックス API)「十分」なシミュレーションを行わないでください。
これまでに発生したバグのほとんどは、Flex がドラッグ アンド ドロップを処理する方法に関連しており、これらのライブラリでは十分に正確にシミュレートできません。たとえば、コンポーネントの下半分で「ドロップ」イベントが発生するケースをテストする必要があります。FlexMonkey も Selenium Flex API もそれはできません (マウス イベントをシミュレートすることはできますが、イベントは含まれません)。座標)。
では、その種のテストを自動化する「良い」方法はあるのでしょうか?
編集:多くの調査を行った結果、これを実行できる唯一のソフトウェアは次のとおりです。 アイマクロス, 、これは Windows のみであり、インターフェイスは次のとおりです。不足しています。だから私はなるつもりです 自分で書く. 。基本的に、HTTP インターフェースを配置します。 java.awt.Robot
そのため、コード (任意の言語) でマウス/キーボード イベントをシミュレートできます。ご興味がございましたら、私に PM してください。最新情報をお知らせします。
編集2:私が作成したフレームワーク Blunderbuss の最初のバージョンを BitBucket で公開しました。 http://bitbucket.org/wolever/blunderbuss/ 。実行するには Jython が必要です (http://www.jython.org/)、しかしその後は flex-client
例は機能するはずです。
動画 Blunderbuss のライブが Vimeo で行われます:
現時点では、これは概念実証のままです。クリーンアップしてより使いやすくするサイクルがまだないからです…しかし、おそらく十分な数の人々が私にその時間を与えてくれるでしょう :)
解決
私は、コードに任意のフックを追加することなく、FlashとAIRアプリケーションをテストするためにナスに使用しました。それは素晴らしいツールだが、それは非常に高価です。これは、システムにVNC-INGのことで、実際のユーザーをシミュレートし、画像認識使用しています - 他のものの間を - 。アプリと対話するために、
他のヒント
私は(私は、Java(まだ...)最高の状態ではないですが)あなたはこのコラボレーティブを作ることを考えているなら、私は助けることをいとわないカスタムJavaクラスでは間違いなく興味を持っています、と。
フラッシュのMouseEventsに関しては。残念ながら、実際にはFlashのドラッグ/ドロップでの経験をシミュレートするために正確な方法はありません。 MouseEvent、マウスで生成されたときに、定期的なイベントよりも非常に異なった方法で処理していて、処理関数にイベントを渡すこと、またはディスパッチャ火災に新しいいるDragEvent(DragEvent.DRAG_DROPを作ることによってアクションをシミュレートすることができながら...、それはユーザーがそれと対話したと同じにはなりません。そして、(クリップボードへのアクセスを得ることのような)いくつかの機能のために、フラッシュ内の何もあなたの目標を達成しないでしょう。
正直に言うと、あなたはおそらく正しい方向に向かっている - 偽造マウスイベントを駆動するためにFlashで書かれていないものを使用すると、おそらくあなたの最善の策である。
。私は、Flexでそれを使用していたんが、私は最近、MSの表面SDKでの自動化パッケージ上のいくつかの情報を偶然見つけ...それにすなわちテストに使用することができ、これらのクラスの自動化、ユーザーの行動を見た後、偽の移動決してしましたここまでのマウスは、このアクションを実行します。あなたはフレックスmx.automationパッケージおよびクラスを使用しているとしてに。 (と希望)私の推測では、あなたがこれらのクラスを使用して欲しいものを達成することができるだろうということです。
また、自動ホットキーを試みることができます。