web-dev-qa-db-ja.com

Android Automation?のAppium環境のセットアップ方法?

私はテストでSDとして働いています。私はAppiumオートメーションツールを初めて使用します。このツールは、環境を設定するのが非常に難しいです。

私は次のリンクを参照しました:: http://unmesh.me/category/appium/

このリンクは、コマンドラインからNode.jsとappiumをインストールするのに役立ちましたが、この正しい方法がわかりません。

コマンドラインから次のメッセージが表示されました:

mani-kandans-MacBook-Pro:platform-tools manikandan $ info:Appium v​​0.8.2へようこそ(REV e9cc66197ad6a3496322bd77a8699509fc761b69)info:Appium REST httpインターフェイスリスナーは0.0.0.0:4723情報で開始- socket.ioが開始されました

この後、私は何のアイデアも持っていません。テストケースを作成してAppiumで実行する方法は?

Appiumツールに関する知識を共有したい場合。案内してください。

  1. Appiumのインストール方法は?
  2. Appiumツールを使用してテストケースを実行する方法は?
16
Manidroid

パート1:-。ノードserver.jsを使用してappiumサーバーを起動したように見えます-ブラウザーでlocalhost:4723/wd/hub/statusにアクセスしてサーバーを確認できます。これによりサーバーのいくつかの詳細が返されます。すでにこれを行っています。

コマンド出力は、サーバーが起動されたことを確認する次のようになります。

info: Welcome to Appium v0.8.1 (REV ***********************************)
info: Appium REST http interface listener started on 0.0.0.0:4723
       info  - socket.io started

二部:-。次に、Selenium RCをPython、Java、またはc#、または任意の言語選択に使用します。私はc#を使用しましたが、これはテストに似た例です。

Seleniumをc#クラスに追加するには:using OpenQA.Selenium.Remote;すべてのデータをSeleniumの必要な機能オブジェクトに渡します。次のようなカスタムの望ましい機能がいくつかあります。

  • 'app-package'これは、com.myapp.mainなどのアプリパッケージ名です。
  • 「アプリアクティビティ」。これは、アプリを起動するアプリのメインアクティビティであり、アプリも起動します。多くの場合、これはスプラッシュアクティビティまたはメインアクティビティです。
  • 'wait-activity'は、Appiumが起動後にチェックするアクティビティです。これはapp-activityになりますが、一部のテストでは、呼び出されるよりも新しいアクティビティが起動される場合、
  • [バージョン]はAndroidバージョンを使用し、
  • 接続したデバイスまたはAVDをコマンドとアプリに渡す「デバイスID」。インストールするapkへのローカルパスがあります。これは署名され、起動時にインストールされます。再署名されたアプリが既に存在する場合、これはスキップされます。

        DesiredCapabilities caps = new DesiredCapabilities();
        caps.SetCapability("app-package", "com.myapp.test");
        caps.SetCapability("browserName", "");
        caps.SetCapability("device", "Android");
        caps.SetCapability("app-activity", "com.myapp.SplashActivity");
        caps.SetCapability("takesScreenshot", true);
        caps.SetCapability("version", "4.1.2");
        caps.SetCapability("device ID", "uniquedeviceid");
        caps.SetCapability("app", @"C:\path to\app\on\pc\app.apk");
    

作成する機能に従って、使用したハブURLを渡すリモートWebドライバーオブジェクトを作成します(例:http://localhost:4723/wd/hubおよび作成したDesired Capabilities)。

RemoteWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4723/wd/hub/"), caps);

この行は、AppiumサーバーのIPまたはホストを使用して、要求のリッスンを開始します。私にとって、このステップは、接続されたデバイス上でアプリのインストールと起動に署名し、うまくいけば同じことができることを願っています。これは、作成するSeleniumテストがAppiumサーバーに接続される場所です。

作成されたdriverオブジェクトを使用して、AppiumがAndroidテストの多くの代替を実装したSelenium rcコマンドにアクセスできます。これらのそれぞれの間に、Appiumサーバーのコンソールウィンドウに問題があるかどうかが表示されます。

出力はこのウィンドウからエラーを識別するのを助けるために色分けされますが、必要に応じてこれらを独自の方法で処理し、ファイルに出力できます。

複数のデバイスの更新複数のデバイスの使用について確信が持てないため、考慮する必要があります Seleniumグリッド 2を追加する以前の試みデバイスを1台のマシンに接続してテストすると、構成とコマンドへのデバイスIDの追加に関係なく、adbが区別できないという混乱が生じました。 Appiumチームは、サーバーにグリッド機能を追加するための改善を行っています。 Appium Grid (リンク更新)をご覧になることをお勧めします。

グリッドの経験が不足していることをおizeび申し上げます。

よろしく、ブライアン

15
BrianC

返信が遅いようですが、この投稿はWindowsプラットフォームにAppiumをインストールするためのガイドバイステップを探している人を助けることができると思います

http://qaautomationworld.blogspot.in/2014/12/appium-setup-for-Android-windows.html

このリンクは主に次のセクションを扱っています

  1. JDKのインストール
  2. Android SDKインストールパスのセットアップ
  3. Appiumのインストール

    a)node.jsを使用する

    b)Appium.exeの使用

3
Sravan

Appium Android用のenv.rbファイルを次に示します。

 require 'rubygems'
require 'appium_lib'

# Start Android driver
apk = {
    device: :Android,
    app_path: (true && ENV['apk']) || 'path to apk',
    app_package: (true && ENV['package']) || 'com.foo.cam',
    app_activity: (true && ENV['activity']) || '.SplashActivity',
    app_wait_activity: (true && ENV['activity']) || '.MainActivity',
}
Appium::Driver.new(apk).start_driver

Appium.promote_appium_methods Object

log = Logger.new(STDOUT)

case ENV['log']
  when 'WARN'
    log.level = Logger::WARN
  when 'DEBUG'
    log.level = Logger::DEBUG
  when 'INFO'
    log.level = Logger::INFO
  when 'ERROR'
    log.level = Logger::ERROR
  when 'FATAL'
    log.level = Logger::FATAL
  when 'UNKNOWN'
    log.level = Logger::UNKNOWN
  else
    log.level = Logger::DEBUG
end

log.debug('starting suite')

Before do
  @test_env = {
      device: driver,
      main_activity: (true && ENV['main_activity']) || 'grid.GridLoginActivity',
      logger: log
  }
end

# Optional--clears alerts 
After ('@rate_limit') do |scenario|
  log = @test_env[:logger]
  device = @test_env[:device]

  if scenario.failed?
    begin
      wait = Selenium::WebDriver::Wait.new :timeout => 1
      wait.until { device.alert_accept }
      log.debug('cleared rate limit dialog')
    rescue
      log.error("dialog didn't pop.")
    end
  end

  log.debug('rate_limit finished')
end

After ('@network_connection') do |scenario|
  log = @test_env[:logger]
  device = @test_env[:device]

  if scenario.failed?
    begin
      wait = Selenium::WebDriver::Wait.new :timeout => 1
      wait.until { device.alert_accept }
      log.debug('cleared network connection issue')
    rescue
      log.error("dialog didn't pop.")
    end
  end

  log.debug('network_connection finished')
end
1
Whitney Imura

Appiumを最初にインストールするには、すべての必要なツールをダウンロードします。

1)Android Studio

2)Java用のAppium Jarファイル

3)Java Selenium Client Plugin

4)Appiumサーバー

5)Java SDK

これらのツールをすべてダウンロードした後、このブログのステップバイステッププロセスの説明に従ってください==> AppiumのインストールプロセスAndroid Studio

0
Ganesh Garad