web-dev-qa-db-ja.com

自動テストフレームワーク用のAppiumとEspresso

過去数週間、私はAppium(python)をAndroidテストに使用しましたが、昨日は自動テストのためにExpresso(Java)にシフトすることにしました。いくつかあります。この移行を行う理由:

  • 自動テストをスケールアウトしたいと考えています。appiumにはない機能がたくさんあります。

  • これはAndroidの最新のテストフレームワークの1つであり、Niceの下位互換性があります。

  • 小さなAPIで、カスタマイズが非常に簡単です。

私は Espresso について読んでいますが、Appiumと比較すると、素晴らしいものは何も見つかりません。私は Python/R developerしたがって、理解できない点がいくつかあるかもしれません。この新しいテストフレームワークへの移行が将来に役立つかどうか、誰かが私に理解を助けてくれませんか?ここで全体像を見逃しているので、どんな助けでもいただければ幸いです。

18
python
  1. Espressoはカメラ、ブラウザ、ダイヤラなど、アプリがサポートしていないアプリ外のテストアクティビティをサポートしているため、シフティングは非常に役立ちます。
  2. Espressoでは、アプリの外部にあるトーストメッセージ、オートコンプリート、ダイアログをテストできます。
  3. Espresso Test Suitを使用すると、コードカバレッジを見つけて、テスト作業を測定できます。
14
anuja jain

Android自動化に固執していて、iOSを自動化する方法がわからない場合は、Espressoにアクセスできます。

AFIKW、Espressoは自動化するためにアプリのソースコードを必要とします。

利点は、Googleが直接オープンソース化していることです。

しかし、私の行くところはAppiumに行くことです。大きなオープンソースコミュニティであり、大きな拡張機能があり、プログラミング言語で簡単に自動化できます。言うまでもなく、AndroidとiOSの両方をサポートしています。

13
karthick23

Espressoは、Androidテストのみの場合、非常に効率的である可能性があります。たとえば、テストしているアクティビティのみを実行できます。これは素晴らしいことです。

それでも、AndroidDriverとiOSDriverの両方に同じAPIがあるため、私はAppiumを使い続けます。通常AndroidアプリにはiOSアプリが付属しています。UIの自動化を担当している場合は、全体的なコストを考慮する必要があります。

Appiumには、プラットフォーム固有のソリューションに比べて次の利点があります。

  • AndroidとiOSのテストは、ヘルパーメソッドと構成を含む多くのクラスを共有できます。
  • AndroidとiOSのテストは、上位レベルで共通のテストロジックを共有しながら、下位レベルで異なるまたはわずかに異なる実装を使用できます(たとえば、ページ全体のオブジェクトクラスをコピーし、ロケーターを単純に変更して、他のクラスで機能させることができます。プラットホーム)、
  • 同じAPIを使用すると、iOSとAndroidチームでのテスト開発をシームレスに切り替えることができます。Web開発用にSeleniumに簡単に切り替えることができるという利点もあります。

Appiumの最大の欠点は、より長いテストシナリオの速度と要素の特定におけるいくつかの困難ですが、それでも私の選択です。

補足として、テストの自動化を指すテストピラミッドを忘れてはいけないことを付け加えておきます。単体テスト、統合テスト、UIテストのバランスをとってください http://martinfowler.com/bliki/TestPyramid.html

8
kiedysktos

2つの主な違いは、

Espressoテストはアプリケーション内にあり、アプリケーションのすべての層を認識しています。したがって、ホワイトボックステストのように、アプリの特定のレイヤーをモックすることができます

Appiumテストはブラックボックスであり、テストはアプリのUIレイヤーのみを認識します。主な利点は、クロスプラットフォームテストです。

6
Santhosh Kumar