Appium Maven依存関係: セットアップ Eclipse プロジェクト例
⚡ スマートサマリー
Appium Mavenの依存関係管理機能により、モバイル自動化プロジェクトでpom.xmlにjava-clientアーティファクトを宣言できるため、Mavenがすべてのjarファイルを自動的に解決し、手動でダウンロードすることなく、どのマシンでも同じビルドを実行できます。
何ですか Apache Maven?
Apache Maven Javaベースのプロジェクト管理および自動化ツール。開発者がビルドライフサイクル全体を簡単に実行できるように、マルチタスクフレームワークを提供します。 Java アプリケーション。Maven は、POM (プロジェクト オブジェクト モデル) と呼ばれる XML 形式で事前定義および宣言されており、「pom.xml」と呼ばれます。C#、Scala、Ruby などの他の言語にも使用できます。
Mavenフレームワークを使用すると、あらゆるプロジェクトで以下のタスクを簡単に管理できます。
- ビルドサイクル
- プロジェクト文書
- レポートチェック
- スクラム管理
- リリース情報
Mavenの基本的な用途は以下のとおりです。
- 標準のディレクトリ構造を強制します。
- 再利用可能で保守が簡単なプロジェクト構造を提供します。
- パッケージの依存関係を解決します。
- 構成管理フレームワークを提供します。
その依存関係解決能力はまさに Appium プロジェクトのニーズは、 Java クライアントが連鎖的に引き込む Selenium 誰も手動でダウンロードしたがらないjarファイル。
ダウンロード Appium Mavenの依存関係
書き始める前に Appium Maven を使用した依存関係テストでは、 Appium Maven依存関係 — Appium JARダウンロードファイル — Maven Centralリポジトリのウェブサイト以下のスクリーンショットは、Maven Central 上の java-client アーティファクト一覧を示しています。ここには、公開されているすべてのバージョンとそのすぐに使用できるコードスニペットが掲載されています。
または、下記に記載されている POM.xml アーティファクトを直接追加してください。
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>3.4.1</version> </dependency>
⚠️ バージョンノート: 3.4.1 上記の座標は元の例であり、ブロックの正しい形状を示しています。これは W3C WebDriver プロトコルより前のものなので、新しいプロジェクトではバージョンを上げる必要があります。執筆時点での Maven Central の最新リリースは 10.1.1が必要です Selenium 4.42.0以降。
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>10.1.1</version> </dependency>
私たちのところを通ってください Maven チュートリアル Maven を構成する方法を学ぶには Eclipse.
Appium Mavenプロジェクトの構造と必要な依存関係
Mavenは固定のレイアウトを強制するため、それを理解しておけば、このチュートリアルの後半で起こる混乱のほとんどを防ぐことができます。生成されたプロジェクトには、重要な4つの場所が含まれています。
- pom.xml — プロジェクトルートにあるプロジェクトオブジェクトモデル。すべての依存関係とプラグインが宣言されています。
- ソース/メイン/java — アプリケーションクラスとヘルパークラス。
- src/test/java — テストクラス、およびビルド実行時に Surefire プラグインがスキャンする唯一のディレクトリ。
- ターゲット —コンパイルされた出力とテストレポート。ビルドごとに再生成されます。
その Appium java-client は唯一の必須依存関係です。 Selenium API、リモートドライバ、サポートアーティファクトは推移的に関連しています。多くのチームは依然として固定しています。 Selenium バージョンが一箇所に表示されるように明示的に設定し、テストランナーを追加します。
<dependencies> <dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>10.1.1</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.42.0</version> </dependency> </dependencies>
2つのバージョンを互換性のある状態に保つ。java-clientのリリースでは、 Selenium サポート範囲、そして古いクライアントと新しいクライアントを混在させること Selenium 実行時にNoSuchMethodErrorが発生する最も一般的な原因です。 java-clientリポジトリ 各リリースにおけるペアリングを文書化しています。
テストアプリケーション Appium そしてメイビン
依存関係が確立されると、 Eclipse 以下のワークフローは、実行可能なプロジェクトをゼロから構築します。 Appium Java Mavenプラグイン Eclipseワークスペースはあらゆるテストに対応可能です Android .apk とのアプリケーション Appium そして、Maven は、 Appium 以下の Maven プロジェクトの例。
ステップ1) このステップでは、
- 「新規」に移動 >> Maven プロジェクトを選択
- 「次へ」ボタンをクリックしてください
新規プロジェクトウィザードが開くと、ここに示されているように、Mavenプロジェクトが選択された状態で起動します。
ステップ2) 次に、「新しい Maven プロジェクト」ウィンドウに「Appium グループIDとアーティファクトIDの列に「Test」と入力します。このステップでは、以下を入力する必要があります。
- グループID
- アーティファクトID
- パッケージング
- 名前と Descriptexpression CMS
- 仕上げ
完成した新規Mavenプロジェクトフォームは、以下のスクリーンショットのようになります。
[完了] ボタンをクリックすると、定義されたグループ ID の下に新しいクラスが開きます (Appiumテスト)名前。
ステップ3) はじめに Appium スクリプトを開くには、左側のエクスプローラーウィンドウで「src/main/java」を右クリックします。次に、「新規」>>「クラス」を選択します。 Appium 選択したクラス内のコード。
そのクラスを作成するために使用したコンテキストメニューを以下に示します。
ステップ4) 同じプロジェクト内で、左側のエクスプローラーメニューから「pom.xml」をクリックします。「pom.xml」タブには、デフォルトですべての依存関係が表示されます。下の画像を参照してください。
デフォルトの pom.xml が存在しない場合は、すべての Maven を追加するだけです。 Appium 依存関係、例tracMavenセントラルリポジトリのWebサイトから引用:
https://central.sonatype.com/artifact/io.appium/java-client
編集された pom.xml には Appium 追加された依存関係は以下のとおりです。
ステップ5) 次に、左側のエクスプローラーで「pom.xml」または「」の XML コードを右クリックします。Appium「Test」プロジェクトを選択します。次に、下図のように「実行」→「Maven Clean」オプションをクリックします。
実行中は、以下のコンソール出力のように、Maven関連のjarファイルと成功メッセージがすべて表示されます。 Appium Java Mavenが設定された環境におけるクライアントのMaven依存関係テスト。
実行方法 Appium Mavenコマンドを使用したテスト
その Eclipse メニューは便利ですが、同じビルドをビルドサーバー上で無人で実行する必要があり、その場合はコマンドラインが唯一の選択肢となります。pom.xml が格納されているフォルダでターミナルを開き、以下のコマンドを使用してください。
mvn clean mvn clean test mvn clean install mvn test -Dtest=LoginTest
それぞれに明確な役割がある。
- mvn clean を削除します
targetディレクトリなので、古いものは次のビルドに引き継がれません。これがコマンドです。 Eclipse 上記のトリガーに関するウォークスルー。 - mvnクリーンテスト プロジェクトをコンパイルし、テストクラスを実行します。Maven Surefireプラグインは、それらを自動的に取得します。
src/test/javaデフォルトのインクルードパターンを使用するTest*.java,*Test.java,*Tests.java(NAIST) と*TestCase.java. - mvn クリーンインストール テストを実行し、パッケージ化された成果物をローカルリポジトリに配置することで、他のプロジェクトがそれに依存することができるようにします。
- mvn test -Dtest=LoginTest デバッグ中に実行対象を単一のクラスに絞り込みます。
2つのポイントが人々を惑わせる。まず、 Appium ビルドを開始する前に、サーバーが既に実行されていて、デバイスまたはエミュレータが接続されている必要があります。Maven はどちらも起動しないためです。デバイスを検証するには、 ADB まずチェックします。次に、結果が書き込まれます。 target/surefire-reportsこれは、CI ジョブがアーカイブするフォルダです。 Surefire使用ガイド 構成オプションを詳細に説明し、同じコマンドで Appium スイートから Jenkins.
コマンドと Appium Mavenのエラーとその解決方法
ほとんどの失敗は Appium Mavenの設定ミスは、テストコード自体ではなく、いくつかの再現性のある原因から発生します。以下の表は、それぞれの症状と一般的な解決策を示しています。
| 症状 | 考えられる原因 | 修正する |
| io.appium:java-client の依存関係を解決できませんでした | バージョン文字列が間違っているか、Maven Centralへのネットワークアクセスがありません。 | Maven Centralのリストから座標をそのままコピーして、ビルドを再実行してください。 |
| NoSuchMethodError または NoClassDefFoundError は Selenium class | java-clientとselenium-javaのバージョンは互換性がありません | 一致する Selenium java-clientのリリースで宣言されている範囲にバージョンを合わせる |
| テストはコンパイルされるが、実行されない。 | テストクラスがsrc/main/javaにあるか、クラス名がSurefireのインクルードパターンと一致しません | それらをsrc/test/javaに移動し、クラス名がTestで終わるように名前を付けてください。 |
| ポート4723での接続が拒否されました | その Appium サーバーが実行されていません | 始める Appium ビルド前のサーバー |
| 無効またはサポートされていない機能 | 最新のドライバーで使用される従来の機能名 | Rev現在 望ましい能力 あなたのプラットフォームのために |
| サポートされていないクラスファイルのメジャーバージョン | Mavenで使用されるJDKは、pom.xmlのコンパイラレベルとは異なります。 | maven.compiler.sourceとtargetプロパティをインストール済みのものに合わせてください。 JDK |
ビルドが失敗した場合は、Mavenが出力する最後のエラーではなく、最初のエラーメッセージを確認してください。後の行は通常、最初のアーティファクトが不足していることが原因です。








