LoginSignup
1
2

More than 5 years have passed since last update.

Appiumに手を出してみた ~ Android ~

Last updated at Posted at 2016-12-10

この記事は「Qiita Advent Calendar 2016 Android その2」の10日目の記事です。

自己紹介

私は、株式会社サイバーエージェント CA ProFit-X という広告プロダクトで、メディア様の収益を最大化することを目標にエンジニアをやってます。
CA ProFit-X は、モバイル向けネイティブ広告(主にインフィード広告)専業のSSP事業者なのです!
また個人的には、今年から 日本Androidの会 の運営メンバーにも入ってたり。

お題

今回はテスト自動化を目標に、 Appium に手を出し始めた話しをしたいと思います。

Appiumって?

Appiumとは、iOSおよびAndroidプラットフォーム上で動く
- ネイティブアプリ
- モバイルウェブサービス
- ハイブリッドアプリ
等を自動化するオープンソースのツールです。

なぜ必要に?

現在、広告配信タグ(モバイルウェブサービス用)のE2EテストにNightmareを使用しています。
しかし、 モバイルSafariでしか発生しない事象 (Mac Safariでも再現しない)にぶち当たり、実機(シミュレータ)を使用したE2Eテストの必要性が出てきました。
また、せっかくなら広告配信SDK(ネイティブアプリ用)のテストにも使っていきたいと思い。
そこで、SeleniumぽくてWebDriberの流れを組むやつをチームメンバーに紹介されたので試してみました。

GUI vs CUI

お試しくらいならGUIの方が分かりやすいかなと思い、今回はGUIで試しました。
結構、ハマった。。。
後から公式を読んでいて分かったのはGUIはバージョンが古く更新されてなかったので、Android/iOSの対応バージョンが古いのかも。

ウェブブラウザとネイティブアプリの起動

いちおう、両方ともやってみた。

環境準備

環境変数を定義する

GUIでAppium Doctorを立ち上げるbashが起動するので、~/.bashrcJAVA_HOMEANDROID_HOMEをかきました。
書かないとエラーが出て先に進めず・・・。

AVDで適当に用意する

実機より簡単かなと思い、適当に3端末分用意してみた。
スクリーンショット 2016-12-10 15.23.19.png

Launch AVD

なぜかAVDで設定した3端末中2端末しか出てこない。意味分からん。

スクリーンショット 2016-12-10 15.25.23.png

ウェブブラウザを起動してみる

Use Browser

なぜかChromeが起動できない。
Chromeがインストールされていない端末なら分かるけど、インストールされていても起動できない。
Browserならできた。意味分からん。

スクリーンショット 2016-12-10 15.25.29.png

ブラウザ起動に失敗すると

手がかりすくな!

スクリーンショット 2016-12-10 15.47.35.png

コンソールには・・・?

スクリーンショット 2016-12-10 15.47.57.png

なるほど。ウェブブラウザ起動するだけなのに、アプリパスを指定しろと。なんでだよ!

スクリーンショット 2016-12-10 15.55.00.png

たしかに置いていないので・・・

スクリーンショット 2016-12-10 16.11.26.png

適当に置いた上でリトライすると・・・

スクリーンショット 2016-12-10 16.10.46.png

キタ━━━━(゚∀゚)━━━━!!

ネイティブアプリを起動してみる

こんなかんじ。
スクリーンショット 2016-12-10 16.21.34.png

広告配信SDKを開発する際のサンプルアプリが自動で起動した!!!
スクリーンショット 2016-12-10 16.23.39.png

ここまでの感想

GUIでやる意味がなかた。GUIだとAppium上に画面が出てきてそこにフォーカスをあてると、どのようなviewかわかる(インスペクタ機能)ものの、CUIでよかた。
iOSは最初からCUIでお試しに入ろうと思う。

最後に

E2Eテストが充実するとリリース前の確認はもちろんですが、リリース後に大きなメリットがあると思っています。
例えば、僕たち広告配信側としては僕らの知らないところで発生しているメディア様の変更に、追従していけると他事業者様との競争にも優位になれそうな気がしています。
なので、ウェブサービス/ネイティブアプリ問わず、同じ仕組みで全てのテスト自動化の仕組みを構築していくことが重要かなと思っており、今後もE2Eテストを充実させていこうと思っています。

次は、 Selenium Grid をかけ合わせてみたい。

1
2
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
2