Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Appiumの新しいGUIツール、appium-desktopがよくなってきてるぞう

f:id:tadashi-nemoto0713:20170405102425p:plain:w400


こんにちは! メルカリのテストエンジニアとして、モバイルアプリのテストをぶりぶり自動化している@tadashi0713です。

メルカリでは、モバイルアプリのテスト自動化のために、一部、Appiumを使用しています。

今回は、現在ベータ版で公開されているGUIツール「appium-desktop」について、簡単な紹介と個人的に感じる魅力についてお伝えしたいと思います!

appium-desktopとは

Appiumは、開発用にGUIツールを提供しており、公式ページからダウンロードできます。

Appium: Mobile App Automation Made Awesome.

Mac版のGitHubリポジトリはこちら(appium-dot-app)です。

こちらを使うことによって、Appiumのインストール、Appiumサーバー起動、インスペクターを利用してアプリ画面内の要素の確認やその操作を簡単に行うことができます。

しかし、上記のツールは現在メンテナンスがほぼ行われておらず、Electronをベースにした新しいGUIツールの開発がすすめられています。

それが今回紹介するappium-desktopです。

github.com

2017/02/11よりベータ版が配布されており、現在v1.0.0-beta.6です。

魅力その1: 見やすさの改善

f:id:tadashi-nemoto0713:20170404190507p:plain:w450 f:id:tadashi-nemoto0713:20170404194439p:plain:w450

Appiumのログ画面 (左: appium-dot-app 右: appium-desktop)

全体的に見やすくなったのですが、特に良く感じた部分が2つあります。

1つ目はAppiumのログ画面です。

appium-dot-appと比べてスクロールしやすく、またどこでエラーが吐かれているのか色で見やすくなりました。


f:id:tadashi-nemoto0713:20170404213127p:plain:w450f:id:tadashi-nemoto0713:20170404210847p:plain:w450 インスペクター画面 (左: appium-dot-app 右: appium-desktop)

そしてもう一つはインスペクター画面です。

appium-desktopではApp SourceをHTMLエディタのようなビューで見ることができます。

特に複雑な画面になると、appium-desktopの方がより要素を探しやすくなりました。


実際にAppiumを使ってテストを書く場合、要素のXpath・IDを見つけ操作したり、Appiumのログを確認したりするのに結構時間を取られてしまいます。

見やすさが改善されたappium-desktopでは、テストの開発効率が上がると感じました。

魅力その2: 設定の柔軟性

f:id:tadashi-nemoto0713:20170404214449p:plain:w450f:id:tadashi-nemoto0713:20170404194720p:plain:w450 Desired Capabilities 設定画面(左: appium-dot-app 右: appium-desktop)


appium-desktopではより柔軟性の高い設定ができるようになりました。

上記は、インスペクターを実行する際にDesired Capabilitiesを設定する画面です。

Desired Capabilitiesを設定することによって、テスト対象のアプリを起動する際に、アプリファイル・デバイス・Activityなどを指定することができます。

以前、Appium1.6から使用できるようになったiOSのappium-xcuitest-driverをappium-dot-appで使ってみようと試してみましたが、Desired CapabilitiesのautomationNameがAppiumに固定されており、XCUITestに変更することができませんでした。

しかし、その項目がデフォルトで固定されているappium-dot-appに対して、appium-desktopでは自由に設定することができるようになりました。

appium-desktopでは、今後Appiumやテスト対象OSの仕様変更があった場合でも、柔軟に対応することができそうです。

魅力その3: ワンソースマルチプラットフォーム

これまではMac、Windows、Linuxそれぞれのプラットフォームで開発され、公開されていました。

appium-desktopはElectronで開発されているため、1つのソースで上記3つのプラットフォームをサポートする予定となっています。

これにより、Appium・テスト対象OSの仕様変更への追従や、GUIツール自体の改善がより速くなることが期待できそうです。

まとめ

今回は実際には触りませんでしたが、テストクラウドサービス(SauceLabs・TestObject)を利用したインスペクターの実行もできるようになりました。

手元にない端末で操作させたい場合には便利な機能かもしれません。

最初にappium-desktopを見つけた際(去年の年末頃)は、手元でビルドしてみてほぼ動かなかったのですが、現在ではベータ版ではあるものの、かなり便利なツールになったと感じました。

もちろんGUIツールを使わずに開発することは可能ですが、特にこれからAppiumを試してみようという方にとって、手元で簡単に実行することができるGUIツールがあるというのは魅力的に感じます。

今までのGUIツールを使っていて不満を持っていらっしゃった方や、これからAppiumを触り始めてみようという方は是非チャレンジしてみてはいかがでしょうか?

また、今後appium-desktopを使っていく上で欲しい部分や不具合も見つかってくるかと思うので、Appium大好きな僕としては積極的にContributeしていこうと思います!


現在テスト自動化チームではメンバーを募集しています。

Appiumに限らずモバイルテスト自動化に興味のある方は、是非Wantedlyを見てみてください!

www.wantedly.com