ホームページ  >  記事  >  運用・保守  >  Android で一般的に使用される 9 つの自動テスト フレームワークとは何ですか?

Android で一般的に使用される 9 つの自動テスト フレームワークとは何ですか?

WBOY
WBOY転載
2023-05-24 14:41:311529ブラウズ

モバイル APP の自動テストの難しさ

モバイル APP の自動 UI テストは長い間困難でした。その難しさは「変更」にあります。 」という UI の問題が発生し、自動化されたユースケースの大規模なメンテナンスが発生します。 階層化テストの観点から見ると、 自動テストは階層ごとに実行する必要があります。最も多くの自動テストを行う必要があるのは、実装が最も簡単で、問題を早期に検出するのが最も簡単な単体テストです。次に、ロジックを検証する目的で自動化される インターフェイス レベルのテスト が続きます。インターフェイスの相対的な安定性により、自動テストのコストは比較的許容範囲内ですが、最大の自動化コストは UI レベルの自動テストですが、UI インターフェイスはユーザーのエフェクト表示に直接フィードバックされます。中程度の、特に BVT レベルの自動テストも非常に必要です。

これらを取り除くには、自動テストを導入する必要があります。時間があるので、テスターが自動化フレームワークを選択する際の参考になるように、Android で一般的に使用されるいくつかの自動テスト フレームワークの類似点と相違点をまとめます。

Android一般的に使用されるいくつかの 自動テスト フレームワーク比較

1. Monkey は Android SDK です。組み込みのテスト ツールは、テスト プロセス中に擬似ランダム ユーザー イベント ストリーム (キー入力、タッチ スクリーン入力、ジェスチャ入力など) をシステムに送信して、開発中のアプリケーションのストレス テストを実装します。ログ出力。このツールは実際にはプログラムに対して一部のストレス テストのみを実行でき、テストされるイベントとデータはランダムでカスタマイズできないため、大きな制限があります。

Android SDK によって提供されるもう 1 つのテスト ツールは、MonkeyRunner です。厳密に言うと、MonkeyRunner は実際には API ツールキットであり、Monkey よりも強力で、データとイベントをカスタマイズするためのテスト スクリプトを作成できます。スクリプトはPythonで書かれているため、テスターに​​高いスキルが求められるため、学習コストが比較的高いのがデメリットです。

3. Robotium も Instrumentation に基づいたテスト フレームワークです。主に特定の APK の自動テストを実行します。APK にはソース コードがある場合とソース コードがない場合があり、強力です。欠点は、テスターが特定のソース コードを持っている必要があることです。 Java の知識。基本的には Android の基本コンポーネントを理解していますが、複数のアプリを使用することはできません。

4. Instrumentation は、Google が提供する初期の Android 自動テスト ツール クラスです。当時は JUnit も Android をテストできましたが、Instrumentation を使用すると、フレームワーク レベルであっても、アプリケーションに対してより複雑なテストを実行できます。他の多くのテスト フレームワークの基礎となっており、同じプロセスでテスト対象のコンポーネントをロードできます。豊富な高レベルのパッケージが多数あり、ユーザーはインストルメンテーションに基づいた他のフレームワークを使用して、過度の二次開発を避けることができます。ただし、インストルメンテーションはクロスアプリケーションをサポートしていないため、インストルメンテーションに基づくフレームワークはこの欠点を継承します。

5. UIAutomator は Google が提供するテスト フレームワークで、ネイティブ Android アプリやゲームの高度な UI テストを提供します。基本的に Android のすべてのイベント操作をサポートしており、Instrumentation と比較して、テスターがコード実装の詳細を理解する必要がありません (UiAutomatorviewer を使用すると、ソース コードを見ずにアプリ ページのコントロール プロパティをキャプチャできます)。

Java をベースにしたテスト コード構造はシンプルで、書きやすく、学習コストも低くなっています。一度コンパイルすると、すべてのデバイスまたはシミュレータでテストを実行でき、複数のアプリ間で実行できます (例:アプリにはアルバムを選択し、カメラを開いて写真を撮る機能があります。これがアプリ間テストです)。

このツールの欠点は、SDK 16 (Android 4.1) 以降のみをサポートしており、ハイブリッド アプリケーションや Web アプリケーションと互換性がないことです。

6. Espresso は、Google のオープンソースの自動テスト フレームワークです。 RobotiumやUIAutomatorと比べて規模が小さく、APIがシンプルで精度が高く、テストコードの記述も簡単で、すぐに始めやすいのが特徴です。インストルメンテーションベースであるため、異なるアプリケーション間で使用することはできません。

7. Selendroid: Instrumentation に基づいたフレームワークであり、Webdriver プロトコルと完全な互換性があります。 Selendroid は、エミュレータと実際のデバイスでの実行をサポートしており、スケーリングと並列テストのためのグリッド ノードとして統合できます。

Athrun は、淘宝網が開発したモバイル テスト フレームワーク/プラットフォームで、iOS と Android の両方をサポートしています。 Android 部分も Instrumentation に基づいており、Android のオリジナルの ActivityInstrumentationTestCase2 クラスに基づいて拡張され、オブジェクト指向 API の完全なセットを提供します。

Appium は、クロスプラットフォームのオープンソース自動テスト ツールであり、最も強力なフレームワークの 1 つと考えられています。次のコンテンツでは、その特徴と使い方を詳しく紹介します。

Appiumメリットとデメリット

その利点:

①オープンソース;

②ネイティブ アプリのサポート、 Hybird アプリ、Web アプリ;

③Android、ios、Firefox OS をサポート;

④サーバーはクロスプラットフォームでもあり、Mac OS X、Windows、または Linux を使用できます;

#その哲学は次のとおりです:

Appium を使用した自動テストでは、アプリを再コンパイルする必要がありません。

は、Java、JavaScript、PHP、Python、C# など、テスト スクリプトを作成するための多くの言語をサポートしています。 、Ruby およびその他の主流言語;

WebDriver が拡張されたため、自動テストのために車輪を再発明する必要はありません。 (WebDriver は、WebApp をテストするためのシンプルで高速な自動テスト フレームワークであるため、Web 自動テストの経験を持つテスターは直接開始できます);

自動モバイル テストはオープン ソースである必要があります;

以上がAndroid で一般的に使用される 9 つの自動テスト フレームワークとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。