LoginSignup
1
1

More than 5 years have passed since last update.

Inside appium for android(2)

Posted at

はじめに

前回のInside appium for androidは、ログを紹介しただけだったが、今回は、appiumのドキュメントを参考にappiumの内部構造について書く。

Appium動作環境

アプリ動作環境(端末)とテスト実行環境から構成される。

アプリ動作環境

端末は、$ adb devicesで表示されるものであれば、実機、エミュレータのどちらでもOK。

アプリ

開発したアプリ、プレインストールアプリどちらでもOK。
テストのための変更は不要。
これが、appiumのコンセプトになっている。

テスト実行環境

テストを実行するPC。

Appium(server)

Node.jsベースのHTTPサーバ。Appium(client)からの要求を端末上のアプリに仲介する。
iOS、AndroidともにSDKで提供されているツールを使ってアプリと通信する。
Androidはバージョンによって異なるツールを使う。
Instructionを使った通信には、Selendroidを使っている。

OS ツール
iOS UIAutomation
Android UIAutomator (4.2+)
Instruction (2.3+)

Appuium(clinet)

テストを読み込み、Appium(server)に要求を実行する。
Appium(server)とSeleniumのThe webdriver wire protocolで通信する。
各種言語のバインディングがある。
* ruby
* python
* java
* javascript
* php
* c#

appium.png

補足

session

appiumとアプリ(端末)との通信は、sessionで管理されている。
テスト開始(WebDriver作成)時に作成したsessionを、終了(WebDriver破棄)時まで使う。

Desired Capabilities

Appium用WebDriver(AppiumDriver)作成時、テスト対象について詳細な記述をする仕組み。
プラットフォーム、テスト対象アプリに関する記述を行う。
これは、Java言語でAndroid上でブラウザ(Chrome)を使ってテストする時の例。アプリの場合には、パッケージ名なども指定する。
java
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName","Android Emulator");
capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("browserName", "chrome");
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

おわりに

次は、appiumのドキュメントを日本語訳しようかな、それとも、コードリーディングしようかな。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1