Help us understand the problem. What is going on with this article?

setup selenium grid for multiple SP devices testing in Mac

More than 1 year has passed since last update.

趣旨

mac環境でselenium-gridとappiumを組み合わせた、SP実機テストの環境構築。
appium単体では、複数の test script を走らせる場合、混信して正しくテストが実施されない。
複数のtest script clientがある場合、以下のことが求められる

  • SPテスト実行中、ほかのテストの割り込みをさせない
  • 複数のSP実機のテスト環境がある場合、空いているデバイスで実行させたい

準備するもの

  • Mac (HighSierra) x 2
  • Android端末 x 2

尚、以下設定が終わり、selenium , appiumが動く前提とする。

構成図

※selenium hub (hub-1)とappium node (node-1)は共存しても動くことは確認済み。

Setup

Selenium hub

Selenium standalone はv.3.12.0を使用した
最初にhubを立ち上げる

java -jar selenium-server-standalone-3.12.0.jar -role hub -port 4444 -host hub1

hub1は構成図のhub1のhost名。なくても動くかもしれないが、明示的にホスト名を指定したい場合、記載

hubが起動しているかは、ブラウザから確認できる
http://{hub1}:4444/grid/console

appium node

appium 1.7.2 を使用した
node1,node2順次、起動する
まず、nodeのconfigを作成する

例) node1の記載例

{
 "capabilities":
  [
    {
      "platformName": "Android",
      "platformVersion": "8.0.0",
      "deviceName": "GalaxyS8",
      "browserName": "Chrome",
      "language": "ja",
      "maxInstances": 1,
      "platform": "Android",
      "udid": "{UDID}"
    }
  ],
  "configuration":
  {
    "cleanUpCycle":2000,
    "timeout":30000,
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
    "url":"http://{node1}:4723/wd/hub",
    "host": "{node1}",
    "port": 4723,
    "maxSession": 1,
    "register": true,
    "registerCycle": 5000,

    "hubPort": 4444,
    "hubHost": "{hub1}"
  }
}

※capabilitiesに、node1に接続する、android SPの情報を記載する
※configurationに、node1と接続するhub1の情報を記載する

configを作成後、appiumを起動する

appium --nodeconfig nodeconfig.json

その後、上記説明した、hubの状況を確認すると、以下のようになる

automation testing client

自動化の実施側で、接続先のcapabilitiesの情報を以下のように、udidを未記述にする

{
"platformName": "Android",
"browserName": "Chrome",
"deviceName": "galaxyS8",
"platform":"Android",
}

これにより、複数テスト実施にて衝突なく複数のSPにてテストを実施できる

※JaSST'18 Hokkaidoでざっくり概要を発表します

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away