SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Appium Conf 2019」レポート

安定・スケールするAppiumテストを実現するための、最先端のモバイルテスト環境と戦略とは【Appium Conf 2019】

Appium Conf 2019参加レポート 第3回

Genymotion CloudとMacStadiumを利用したクラウド環境でのAppiumテストの並列実行

 Aisyah Dzulqaidah氏による「Cloud Based Mobile Application Testing with Appium」では、より現場に近いモバイルテスト環境を紹介していました。

 スピーカーが所属しているチームでは、iOS/Androidで提供しているアプリに対してAppium活用し100テストケース以上実装していたのですが、実行時間が長くなってしまうことが課題になっていました。

 それに対する解決策として、Androidエミュレーター/iOSシミュレーターを活用し、並列にテストを実行できる環境を作ることによって実行時間の短縮に成功しました。

 AndroidエミュレーターはGenymotion Cloudという、クラウド上で簡単にAndroidエミュレーターを展開できるサービスを利用していました。セッションでは、実際にAppiumとGenymotion Cloudを利用したテストの並列実行のデモが紹介されていました。

 iOSシミュレーターはmacOS上で動かす必要があり、macOSはライセンス上Appleのハードウェアで動かす必要があります。そのため、通常クラウドでの実行が難しいのですが、MacStadiumというmacハードウェアをクラウド上でレンタルできるサービスを活用していました。マシン自体のコストだけを比較してしまうとMacStadiumの方が高くなってしまいがちですが、長期的なマシン・OSのメンテナンスコストやスケールを考えると使う価値はあると感じました。

DockerでAppiumのテストを動かす

 開発環境でDockerなどのコンテナ技術を利用することは、もはやデファクトスタンダードになりました。Appiumでテストを実行する場合にも、Node.jsやAndroid SDKなどインストールする必要があるものが多く、環境構築のハードルが高くなりがちでした。

 Sargis Sargsyan氏によるセッション「Run your Appium tests using Docker Android」ではAppiumにおけるDockerの活用方法について紹介していました。

 Appiumプロジェクトが提供するappium-docker-androidでは、Appiumと必要なインストール群をDockerイメージとして提供してあり、Android実機をUSB接続するだけでAppiumの実行環境を構築することができます。

 Docker for macの場合には、DockerコンテナからUSBデバイスにアクセスできない制限があるのですが、docker-machineを利用しVM上にDocker環境をプロビジョニングすることで対応できる解説がありました。

 また、上記のDockerイメージにAndroidエミュレーターを入れたものとして、Docker Android(budtmo/docker-android)も提供されています。こちらは、Androidエミュレーターを扱う性質上ハードウェアの制限がありますが、より手軽にAppiumの開発環境を手に入れることができます。

 また、Appiumのテストに必要なものがすべて入っているため、クラウド上で並列実行させることも可能です。以前、私が試した記事があるのでよろしければご覧ください。

 Docker化によって、より開発環境・テスト環境の構築が手軽になってきています。

おわりに

 AppiumConfにおいて、安定・スケールできるモバイルテスト環境をどう作るのか、さまざまな知見を得ることができました。

 そして、上記のセッションでは共通して「万能なモバイルテスト環境はない」という主張がされており、私も共感しました。

 モバイルテスト環境1つとらえても、エミュレーター・実機デバイス・通信環境などによって特徴が異なり、その環境で実行すべきテストも異なるからです。

Mobile Test Pyramid(「The Mobile Testing Pyramid」(Elemental Selenium)より引用)

Mobile Test Pyramid(「The Mobile Testing Pyramid」(Elemental Selenium)より引用)

 「Run your Appium tests using Docker Android」のセッションではMobile Test Pyramidが紹介されていました。

 Appiumのような同じE2E UIテストであったとしても、そのテストはどの環境で実行するのが良いか考え、分けていくことが重要だと主張していました。具体的にはシステムテストや機能テストのみで良い場合には、ブラウザやエミュレーターを使い、パフォーマンステストや実機特有の結合テストを実施したい場合のみ実機テバイスを活用します。

 このMobile Test Pyramidと、上記のセッションのノウハウを組み合わせることによって、安定・スケールできるモバイルテストを実現できるのではないかと感じました。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
「Appium Conf 2019」レポート連載記事一覧

もっと読む

この記事の著者

根本 征(株式会社メルカリ)(ネモト タダシ)

株式会社メルカリ Automation & QA グループ(通称:AQA)自動化エンジニア。2016年4月に新卒でメルカリに入社。QAエンジニアと共にモバイルをメインとしたUIテスト自動化を推進していく傍、モバイル CI / CD改善や社内の生産性を上げるための自動化・サポートを行なっている。GitHub:https://github.com/tadashi0713

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11609 2019/07/17 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー