appium tutorial testing android
Appiumでキックスタートを取得するための最初のプログラムを使用してWindowsにAppiumをインストールおよびセットアップする方法:
Appiumはオープンソースです テスト自動化ツール のために使用される モバイルアプリケーションのテスト 。これにより、ユーザーは、標準のWebDriverライブラリを使用して、さまざまなタイプのモバイルアプリケーション(ネイティブ、ハイブリッド、モバイルWebなど)をテストできます。
モバイルアプリには次の3つのタイプがあります。
- ネイティブ: iOS、Android、またはWindowsSDKを使用して構築されたネイティブアプリ。それらはプラットフォーム固有です。これらは、プラットフォームやデバイスで動作するように構築されています。
- ハイブリッド: ハイブリッドアプリは、iOSの場合はUIWebView、Androidアプリの場合は「webview」に加えて、HTML、CSS、ネイティブアプリケーションのラッパーを使用して開発されたウェブアプリケーションです。
- モバイルウェブアプリ: モバイルウェブアプリは、モバイルブラウザを使用してアクセスするアプリです。
このAppiumシリーズのチュートリアルのリスト
チュートリアル#1: 初心者のためのAppiumチュートリアル(このチュートリアル)
チュートリアル#2: Appiumの概要:Appiumとそのアーキテクチャとは
チュートリアル#3: Windows用のAppiumをダウンロード、インストール、セットアップ
チュートリアル#4: Appiumのシステムでモバイルデバイスを構成する
チュートリアル#5: Appiumを使用してAndroidデバイス上のネイティブアプリを自動化する
チュートリアル#6: AndroidデバイスのChromeブラウザでWebアプリを自動化する方法
学習内容:
- Appiumがモバイルアプリを自動化するための人気のあるツールである理由
- WindowsでのAppiumツールのセットアップ
- EclipseIDEでAppiumをセットアップする
- 以前の時代の制限
- Appiumでの作業中に直面する課題
- 結論
Appiumがモバイルアプリを自動化するための人気のあるツールである理由
Appiumは「クロスプラットフォームツール」です。つまり、同じAPIを使用して、複数のプラットフォーム(iOS、Android、Windows)でテストを作成できます。使用する appium 、タブレットや携帯電話などの実際のデバイスでも自動テストを実行します。
一番です 広く使われているツール 携帯電話やタブレットでのモバイルアプリの回帰テスト用。 Appiumを使用すると、モバイルアプリの回帰テストが簡単になります。特に、新しい機能で頻繁に更新される大規模なモバイルアプリの場合。
WindowsでのAppiumツールのセットアップ
前提条件: これは、Appiumを使用してモバイルアプリのテストを自動化するために必要なソフトウェアとハードウェアの候補リストです。
- PCには、JDK、Appium Server、Eclipse、AndroidSDKがインストールされている必要があります
- APK: CaseContactManager.apkで自動化されるモバイルアプリケーション
- テストデバイス: この場合、Moto G
- 瓶: JavaクライアントjarとSeleniumJar。
- テストデバイス用のUSBドライバー: この場合、Moto G
ステップ1: Java Development Kitをインストールします( JDK )
ステップ2: Javaをセットアップする 環境変数パス
ステップ3: AndroidSDKをダウンロードしてインストールします ここに APIを更新します
APIを更新するには、 Eclipseを開きます-> Eclipseメニューのウィンドウをクリックします-> AndroidSDKマネージャーを選択します
以下のスクリーンショットに示すように、APIを更新します。
ステップ4: 次に、Appium forWindowsをインストールする必要があります。行く ここに Appium forWindowsをダウンロードします。
ステップ5:私 ここからノードJSをnstallします。 NodeJSダウンロード
ステップ6: をセットする ANDROID_HOME パスだけでなく JAVA_HOME 道
AndroidSDKパスに存在するツールとplatform-toolのパスを指定します。
これらのフォルダはに存在します adt-bundle-windows-x86_64-20140702 sdk
次に、環境変数を更新する必要があります(以下のスクリーンショットを参照)
((注意:拡大表示するには画像をクリックしてください)
ツールとプラットフォームツール(Android SDKに存在するフォルダー)でパスを更新します。
パスのエントリは次のようになります。
C: Program Files nodejs ;%ANDROID_HOME% tools;%ANDROID_HOME% platform-tools
ステップ7:adbにアクセスする
Win + Rキーの組み合わせを押す
タイプ CMD 。 CMDで「 adb ’。 adbにアクセスできるようになります
Appiumによる自動化のためのモバイルデバイスの準備
USB経由でモバイルテストデバイスをPCに接続します。アプリを自動化する前に、携帯電話で開発者モードを有効にしてください。
Androidフォンまたはタブレットで開発者モード/オプションを有効にする手順:
1) [設定]を開き、[バージョン情報]オプションをタップし、[ソフトウェア情報]をタップし、[その他]をタップします。
二) 「ビルド番号」を7回タップして、開発者向けオプションを有効にします。
3) [設定]に戻り、[開発者向けオプション]設定が表示されていることを確認します。
4) 開発者向けオプションをタップし、次の画面のメニューからUSBデバッグオプションをオンにします。
さらにヘルプが必要な場合は、これに従ってください リンク 。
5) PCにモバイルテストデバイス用のUSBドライバーをダウンロードしてインストールします。
6) adbターミナルで「adbdevices」と入力します
C: Users NEERAJ> adbデバイス
接続されたデバイスのリスト
TA93305G0Lデバイス
これにより、システムに接続されているデバイスのリストが表示されます。自動化するサンプルアプリとしてAppContactManager.apkを使用します。ダウンロードとインストール Manager.apkに連絡してください デバイス上。
Appiumを使用したAndroidアプリの自動化の開始
今実行します appium.exe PCで。
Appiumが実行されている必要があり、Android設定で次のパラメーターとデバイス名を渡す必要があります。
注意: 一般設定アイコンのポート番号などは変更しないでください。 Appiumサーバーが起動すると、サーバーアドレスとポートアドレスがデフォルトで設定されます。ポートアドレスはデフォルトで4723になります
Android設定では、ユーザーはAPKが配置されているAPKパスを設定し、アプリパスを確認し、パッケージ化してアクティビティを起動する必要があります。
- AndroidフォンをPCに接続し、USBデバッグモードをオンにします。
- コマンドプロンプトを開きます。
- コマンドを入力します adb logcat 。
- あなたのAndroid携帯電話でアプリを開きます。すぐに押す CTRL + C コマンドプロンプトで
com.example.android.contactmanager パッケージ名と com.example.android.contactmanager.ContactManager ContactManagerアプリのアクティビティ名です。
上のスクリーンショットでは、Appiumに必要なすべての情報、つまりパッケージ、起動アクティビティ、モバイルデバイス名を入力しています。
UIAutomatorViewerを使用して要素を見つける方法は?
1) 最初にアプリを自動化するには、対話する必要があるアプリの要素を見つける必要があります
そのために、 UIAutomatorViewer
二) アプリがインストールされているデバイスをPCに接続します
3) ターミナルに移動します。
タイプ 「adbデバイス」
C: Users NEERAJ> adbデバイス
接続されたデバイスのリスト
TA93305G0Lデバイス
これにより、PCに接続されているデバイスのリストが表示されます。
4) 自動化するアプリをモバイルデバイスで開きます。
5) 開いた UIAutomatorViewer 次のパスに移動します
adt-bundle-windows-x86_64-20140702 sdk tools
6) したがって、アプリが起動されていることを確認し、 UIAutomaterViewer デバイスのスクリーンショットをクリックして起動します。
7) このオプションは、アプリに表示されるすべての要素のすべての詳細情報を含むアプリのスクリーンショットを撮ります。
テストシナリオの[連絡先の追加]ボタンをクリックします
最高の無料レジストリクリーナーウィンドウズ7
上のスクリーンショットから、ロケーターを使用できます By.name( '連絡先の追加')
上記のスクリーンショットから、連絡先名のロケーターとしてBy.className(“ android.widget.EditText”))を使用できます。
By.name( '保存') 保存ボタンのロケーターとして使用できます
Appiumでアプリを自動化するための最初のプログラム
以下のスクリプトを実行すると、Contact Managerアプリケーションが実際のデバイスで起動され、すべてのログがAppiumコンソールに表示され、上記のスクリプトによって呼び出されるすべてのアクションが示されます。
importjava.io.File; importjava.net.MalformedURLException; import java.net.URL; importjava.util.List; importorg.openqa.selenium.By; importorg.openqa.selenium.WebDriver; importorg.openqa.selenium.WebElement; importorg.openqa.selenium.remote.CapabilityType; importorg.openqa.selenium.remote.DesiredCapabilities; importorg.openqa.selenium.remote.RemoteWebDriver; importorg.testng.annotations.*; public class appium { WebDriver driver; @BeforeClass public void setUp() throws Exception { //location of the app File app = new File('C:\Users\NEERAJ\Downloads', 'ContactManager.apk'); //To create an object of Desired Capabilities DesiredCapabilities capability = new DesiredCapabilities(); //OS Name capability.setCapability('device','Android'); capability.setCapability(CapabilityType.BROWSER_NAME, ''); //Mobile OS version. In My case its running on Android 4.2 capability.setCapability(CapabilityType.VERSION, '4.2'); capability.setCapability('app', app.getAbsolutePath()); //To Setup the device name capability.setCapability('deviceName','Moto G'); capability.setCapability('platformName','Android'); //set the package name of the app capability.setCapability('app-package', 'com.example.android.contactmanager-1'); //set the Launcher activity name of the app capability.setCapability('app-activity', '.ContactManager'); //driver object with new Url and Capabilities driver = new RemoteWebDriver(new URL('http://127.0.0.1:4723/wd/hub'), capability); } @Test public void testApp() throws MalformedURLException{ System.out.println('App launched'); // locate Add Contact button and click it WebElementaddContactButton = driver.findElement(By.name('Add Contact')); addContactButton.click(); //locate input fields and type name and email for a new contact and save it ListtextFields = driver.findElements(By.className('android.widget.EditText')); textFields.get(0).sendKeys('Neeraj Test'); textFields.get(1).sendKeys('9999999999'); textFields.get(2).sendKeys('testemail@domain.com'); driver.findElement(By.name('Save')).click(); //insert assertions here } }
EclipseIDEでAppiumをセットアップする
Appiumに必要なソフトウェア :
- JDK、Appiumサーバー、Eclipse、Android SDK
- 瓶: java-clientjarsとSeleniumJars。
- APK: 自動化されるアプリケーション
- 実際のデバイス: この場合、SAMSUNG Note3
- 実デバイス用のUSBドライバー: この場合、SAMSUNG Kies
ステップ1: をインストールします Java Development Kit(JDK)
ステップ2: セットアップ Java環境変数パス
ターミナルに移動して、次のように入力します。
.bash_profileを開きます
ANDROID_HOMEパスとJAVA_HOMEパスを設定します
ステップ3: AndroidSDKをインストールします / MAC上のADB
Tools、Extras、および対応するAPIレベルパッケージ(この場合はAndroid 4.4.2 API 19)をインストールする必要があります。
((注意:拡大表示するには画像をクリックしてください)
ステップ4: ダウンロードして エポックインストールサーバー
注1: 一般設定アイコンで何も設定する必要はありません。 Appium Serverがインストールされている場合、サーバーアドレスとポートアドレスがデフォルトで設定されます。ポートアドレスは4723になります。ユーザーは必要に応じてサーバーアドレスを変更できます。
注2:注2: Android設定では、ユーザーはAPKが配置されているAPKパスを設定し、アプリパスを確認し、パッケージ化してアクティビティを起動する必要があります。
.Apkファイルパッケージ名とランチャーアクティビティ名を見つける方法:
アプリケーションのパッケージ名とランチャーアクティビティ名を見つける方法はたくさんあります。ここでは、ターミナルを使用してパッケージとランチャーアクティビティの名前を取得します。
ターミナルに移動して次のように入力します。
aaptダンプバッジ
以下の画面で「Enter」を押します。
ユーザーがAppiumサーバーでパッケージ名を指定してからランチャーアクティビティ名を指定した場合は、アクティビティ名が自動的に表示されるのを待ちます。
この場合、ランチャーアクティビティ名は次のとおりです。
「」 com.amazon.mShop.android.home.HomeActivity。」
Android携帯電話またはタブレットで開発者モード/オプションを有効にする手順
ステップ1:開発者向けオプションを有効にする
1) をタップします メインメニュー アイコン。
二) に移動 設定 。
3) 下にスクロールして「 電話について ‘そしてそれをタップします。
4) 一番下までスクロールして、「 ビルド番号' 7回 。 (( ビルド番号は異なる場合があります )。 3回タップすると、ユーザーは遊び心のあるダイアログを見ることができます。 あなたは開発者です 」。ダイアログが表示されるまでタップし続けます。
5) 画面に開発者向けオプションが表示されます。
ステップ2:USBデバッグをオンにします
1) に移動 開発者向けオプション 。
二 ) 選択する USBデバッグ 。
3) 表示される場合があります 現れる メッセージともしそうなら、単に クリック OK 。
ステップ3:対応する実デバイス用のUSBドライバーをダウンロードしてインストールします。この場合、SAMSUNGKiesです。
UIAutomatorViewerを使用して要素を見つける方法は?
1) デバイス上の要素を見つける前の最初のステップは、デバイスをコンピューターに接続することです。
以下の手順に従って、デバイスの接続を確認してください。
- に移動 ターミナル 。
- 「」と入力します adbデバイス '
これにより、システムに接続されているデバイスのリストが表示されます。
二) 実際のデバイスで、自動化する必要のあるアプリを開きます(ここではAmazonアプリが自動化されています)
3) 次のディレクトリに移動して開きます UIAutomatorViewer :
ユーザー -> 図書館 -> アンドロイド -> sdk -> ツール -> uiautomatorviewer.bat
前者: users / bikram.badatya / Library / Android / sdk / tool /
4) UIAutomatorViewerで、をクリックします デバイスのスクリーンショット 。
5) クリックすると デバイスのスクリーンショット、 UIAutomatorウィンドウの左側に、デバイスの画像と詳細情報が表示されます。
6) ページ上の任意の要素をクリックすると、その要素に関する関連情報が右側に表示されます。
7) クリックしてください メインメニュー ボタンをクリックして、すべてのプロパティを表示します。
Amazonアプリを起動するためのAppiumテスト
1)Appiumサーバーを起動します。
2)Androidの設定。
3)サーバーアドレスとポートアドレスの一般設定:
4)起動ボタンをクリックします 。
Amazonアプリケーションを起動するためのコードスニペット:
package com.AppiumDemo; //Library to create the path to APK import java.io.File; //Library used to verify if URL is malformed import java.net.MalformedURLException; //Library used to create URL for the Appium server import java.net.URL; import java.util.concurrent.TimeUnit; //Libraries for import selenium WebDriver import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; //Libraries for configuring Desired Capabilities import org.openqa.selenium.remote.DesiredCapabilities; //Library for import TestNG import org.testng.annotations.Test; //Libraries for import Appium Drivers import io.appium.java_client.MobileElement; import io.appium.java_client.android.AndroidDriver; public class LauchAmazon { private static AndroidDriver driver; //static WebDriver driver; @Test public void setup() throws MalformedURLException, InterruptedException{ // Path to File appDir = new File('//Users//bikram.badatya//Library//Android//sdk//platform-tools//'); //Path to to Amazon apk File> File app = new File(appDir, 'Amazon.apk'); //To create an object of Desired Capabilities DesiredCapabilities capabilities = new DesiredCapabilities(); //To set Command Timeout in appium server.Its optional you can set in appium Server itself. capabilities.setCapability('no',true); capabilities.setCapability('newCommandTimeout', 100000); // Name of the OS: Android, iOS or FirefoxOS capabilities.setCapability('platformName', 'Android'); //set the name of the connected device.you have to give same name in both server and the code capabilities.setCapability('deviceName','41001fd89730a000'); //Mobile OS version. My device is running Android 4.4.2 capabilities.setCapability('AndroidVersion','4.4.2'); //set the package name of the app capabilities.setCapability('appPackage', 'com.amazon.mShop.android'); //set the Launcher activity name of the app capabilities.setCapability ('appActivity','com.amazon.mShop.android.home.HomeActivity'); // Name of mobile web browser to automate. It should be an empty string, as we are automation an app. capabilities.setCapability('browserName', ''); //driver object with new Url and Capabilities driver = new AndroidDriver上記のスクリプトを実行すると、Amazonアプリケーションが実際のデバイスで起動され、メッセージのリストがAppiumコンソールに表示されます。
重要なコマンド
1) adbサーバーを強制終了するには:
adb kill-server
二) adbサーバーを起動するには:
adb start-server
3) JAVA_Homeパスも設定するにはANDROID_Homeパス
.bash_profileを開きます
4) パッケージ名とAndroidランチャー名をapkで取得するには(別の方法)
aaptダンプバッジ.apk名
前者- aaptダンプバッジ
/users/bikram.badatya/Library/Android/sdk/platform-tools/Amazon.apk
5) 実際のデバイスにapkをインストールするには
adb install .apk name
6) 実際のデバイスでapkをアンインストールするには
adbアンインストール
前者 - adbアンインストールcom.amazon.mShop.android
以前の時代の制限
- 17未満のAndroidAPIレベルはサポートしていません
- トーストメッセージはサポートされていません
- IOSプラットフォームでのスクリプトの実行が非常に遅い
- ジェスチャーのサポートは制限されています
Appiumでの作業中に直面する課題
#1) アプリケーションの起動に必要なランチャーアクティビティ名を取得するには、「apkInfo」という名前の追加のapkをインストールする必要がある、特定のコード行を記述する必要があるなど、多くの方法に従うことができます。ただし、このドキュメントでは、次のコマンドを使用して、ランチャーアクティビティ名を取得します。
つまり aaptダンプバッジ.apk名
#二) Android SDKマネージャーでのセットアップ中に、アンインストールする必要がある次のパッケージに焦点を当てる必要があります。そうしないと、アプリケーションは起動しません
#3) 特にMACでは、Java_HomePathとAndroid HomePathを.bash_profileに設定する必要があるため、何度も設定する必要はありません。
#4) エミュレーターを使用してアプリケーションを起動すると、実際のデバイスに比べて時間がかかります。したがって、実際のデバイスの使用をお勧めします。
結論
新たなトレンドとモバイルアプリの需要の高まりに伴い、すべての主要企業はモバイルアプリでビジネスを展開するために移行しています。したがって、高品質のモバイルアプリをリリースするために、モバイルアプリの自動化テストは業界の最新のトレンドです。
Appiumは、そのシンプルさと使いやすさから、iOSまたはAndroid向けのモバイルアプリの自動化テストのために世界中で最も広く使用されているツールの1つです。
著者について: この投稿はSTHチームメンバーのNeerajによって書かれました。彼は現在テストのシニアソフトウェア開発エンジニアとして働いている情熱的なソフトウェアテスターであり、Webおよびモバイルアプリケーションのテストを楽しんでいます。
詳細については、ここをクリックしてください AppiumStudioツールを使用したモバイルオートメーション。
推奨読書