Appiumのテストを1台の計算機上で並列して実行させる

Appiumでテストを実行していると複数台の計算機でテストを並列して実行したい、と思う方もいるでしょう。

Appium自体はサーバなので、1台の計算機上で複数起動させ、テストを並列して実行させることができます。これを行えば、独立したテストケースを分散させて、それぞれのテストを実行、結果を収集するという簡単なテストケースの実行並列化もできます。Selenium Gridよりもかなり手軽にテストを実行できる環境になるでしょう。

設定する点は以下

  1. Appiumサーバに必要な引数を与えて起動する
  2. テストケース側のcapabilityに対象となるAppiumサーバの待ち受けポートを指定する

例えば、appium_libを使っている人だとcapabilitiesのportに値を設定する必要があります。

Appiumサーバの起動

$ appium -p 4723 -bp 4724

※appiumコマンド箇所は、適切にnode .などに置き換えてください

capabilityの指定

例えば、appium_libを使っていると、appium.textの[appium_lib]にportを指定する方法があったり( )、以下のように直接メソッドに値を与えるならserver_capsに対して要素を指定する方法があります。

server_caps = {
    server_url: 'http://127.0.0.1:4725/wd/hub'
}
caps = { caps: desired_capabilities, appium_lib: server_caps }


Appium::Driver.new(caps).start_driver


いずれにせよ、これによりシナリオをAppiumサーバに渡すことができるようになります。

並列実行

Step1


$ appium -p 4723 -bp 4724 
$ appium -p 4725 -bp 4726


Step2

以下2種類でそれぞれ起動

server_caps = {
    server_url: "http://127.0.0.1:4723/wd/hub"
}
server_caps = {
    server_url: "http://127.0.0.1:4725/wd/hub"
}

注意点

iOSではiOS Simulatorの制限上、複数Simulatorを同時に起動させることができません。そのため、iOSは並列実行するには物理的に複数のMacマシンが必要です。

ref: https://github.com/appium/appium/blob/master/docs/en/appium-setup/parallel_tests.md
ref: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中