過去数週間、私はAppium(python)
をAndroidテストに使用しましたが、昨日は自動テストのためにExpresso(Java)
にシフトすることにしました。いくつかあります。この移行を行う理由:
自動テストをスケールアウトしたいと考えています。appiumにはない機能がたくさんあります。
これはAndroidの最新のテストフレームワークの1つであり、Niceの下位互換性があります。
私は Espresso について読んでいますが、Appiumと比較すると、素晴らしいものは何も見つかりません。私は Python/R developer
したがって、理解できない点がいくつかあるかもしれません。この新しいテストフレームワークへの移行が将来に役立つかどうか、誰かが私に理解を助けてくれませんか?ここで全体像を見逃しているので、どんな助けでもいただければ幸いです。
Android自動化に固執していて、iOSを自動化する方法がわからない場合は、Espressoにアクセスできます。
AFIKW、Espressoは自動化するためにアプリのソースコードを必要とします。
利点は、Googleが直接オープンソース化していることです。
しかし、私の行くところはAppiumに行くことです。大きなオープンソースコミュニティであり、大きな拡張機能があり、プログラミング言語で簡単に自動化できます。言うまでもなく、AndroidとiOSの両方をサポートしています。
Espressoは、Androidテストのみの場合、非常に効率的である可能性があります。たとえば、テストしているアクティビティのみを実行できます。これは素晴らしいことです。
それでも、AndroidDriverとiOSDriverの両方に同じAPIがあるため、私はAppiumを使い続けます。通常AndroidアプリにはiOSアプリが付属しています。UIの自動化を担当している場合は、全体的なコストを考慮する必要があります。
Appiumには、プラットフォーム固有のソリューションに比べて次の利点があります。
Appiumの最大の欠点は、より長いテストシナリオの速度と要素の特定におけるいくつかの困難ですが、それでも私の選択です。
補足として、テストの自動化を指すテストピラミッドを忘れてはいけないことを付け加えておきます。単体テスト、統合テスト、UIテストのバランスをとってください http://martinfowler.com/bliki/TestPyramid.html
2つの主な違いは、
Espressoテストはアプリケーション内にあり、アプリケーションのすべての層を認識しています。したがって、ホワイトボックステストのように、アプリの特定のレイヤーをモックすることができます
Appiumテストはブラックボックスであり、テストはアプリのUIレイヤーのみを認識します。主な利点は、クロスプラットフォームテストです。