レポート

進化するSeleniumとテスト自動化 ―「第3回日本Seleniumユーザーコミュニティ勉強会」レポート

この記事を読むのに必要な時間:およそ 10 分

STFとAppiumをもちいたAndroidアプリの自動テスト(平田敏之氏)

「やや緊張しています」と言いながらも,とても滑らかに,時に笑いを取りながら発表していた平田氏は,デモが多く盛り込まれたセッションを披露してくださいました。

平田敏之氏

平田敏之氏

Androidアプリの自動テストにおける課題

Androidアプリを自動でテストするにあたり,以下のような課題が挙げられます。

  • 自動テストに何を使うか?
  • 自動テストを実行する環境のよくある制約

『Selenium実践入門』p.365~366にも同様のことを書いていますが,執筆後にこれらの課題が解決しましたので,発表させていただきます。

Androidアプリの自動テスト

まず,Appiumが本当に使えるかどうかをお見せするために,今回は世に出ているアプリであるMERYを使って,実際にAppiumのテストケースを書いてみました。一切動くかどうかわからない状態でコードを書いていますが,結果は成功でした。このようにAppiumは世に出ているアプリにも使えます。

自動テストの実行環境

Appiumが動作することはわかりましたが,いざ実行してみると以下のような環境の制約が出てきます。

  • 自動テストを手元で動かすと結構つらい
  • つらいのでJenkinsで動かすようにする
  • Jenkinsに端末を接続しなくてはならない
  • 端末がたくさん無いので誰かが使っているときは使えない
  • 自動テストを実行する端末が固定化される

STF(Smartphone Test Farm)

私たちは,こうしたAndroid端末管理の課題を解決するために,株式会社サイバーエージェントが開発したSTF(Smartphone Test Farm)というデバイスファームを使うことにしました。

STFはスマートフォンの端末別のテストをブラウザから実行できるようにし,リモートデバッグも可能でつながっていない端末の操作ができるなど,とても便利なツールです。

一方で欠点としては,ブラウザからしか動かせないという点があります。ですので,我々はAPIを開発・追加してJenkinsから動かせるようにしました。STF 2.0.0から適用されています。

STF2.0.0の新機能

STF2.0.0は,以下のようなことが可能です。

  • 端末のstatus(利用中 / オンライン etc.)が取得/変更可能
  • 端末の情報(OS / Model etc)が取得可能

複数台のスマートフォンが接続されて,それぞれほとんどディレイせずにブラウザから動作させることができたり,IPを指定して別のPCに接続されたスマートフォンを認識したりと,かなり使えるツールに仕上がっています。

最後に

『Selenium実践入門』の原稿を出してから数ヵ月が経過し,ここまで進化しましたという発表でした。ぜひ,STF@2.0.0のAPIを利用してみてください。また,さらに簡単に使えるように,現在STF用のJenkins Pluginも開発中です。

Q&A

Q:STFを選んだ理由は何でしょうか。
A:自分たちでもこうしたデバイスファームを作ることを検討していたのですが,STFが発表され,実際に試してみたらよかったからです。

STFとAppiumをもちいたAndroidアプリの自動テスト

著者プロフィール

河原田政典(かわらだまさのり)

株式会社ベリサーブ所属。ソフトウェア開発に携わってきた経験を活かしてテスト自動化を担当。現在まさにSeleniumを扱っている。書店の技術書コーナーが大好きで,「読んだ=役立てられる」とは限らないと自戒しつつも蔵書は増える一方。本棚がいつ満杯になるか心配する日々を過ごしている。

コメント

コメントの記入