Mobileを自動テストすること
Photo by David Švihovec on Unsplash
Mobileで稼働するWebアプリの自動テストは、
1. 実機をテスト用PCに接続してAppiumからテストする。
2. 入手可能なEmulatorをAppiumを用いてテストする。
3. Chromeのデベロッパ・ツールでブラウザをMobile EmulatorモードにしてSeleniumからテストする。
といった手段があるかと思います。それぞれ一長一短ありますが、実機が無い場合でもエミュレータを使ってテスト自動化できる点は、後の2つが手軽なので、やってみました。
確認環境はWindows PCなので、2.についてはAndroid Studioで設置可能なAndroid Emulator
3.についてはAndroid端末・タブレット端末・iPhoneが選べます。
現在のAppiumのバージョンは、1.20.2 ですが、過日参加したAppiumのセミナーでは、2.0の紹介がありました。日々進化する中で、初めてAppiumを扱ってみたのですが、PCで稼働するWebアプリのテストケース(今回もGherkinで記述しています)は、かなり流用できました。
テストコードもSeleniumではWebDriverを呼び出して実行しますが、Appiumでは代わりにAppiumを呼び出してしまえば、後は仮想デバイスのChromeを起動するだけなので、ブラウザを起動するまでのコードが若干異なる位の感覚でした。Appium自体は仮想端末だけを対象としているのでは無く、WindowsPC上のデスクトップアプリもWindows API Driverを使えば操作することができるようです。もっとも、このあたりはRPAを使うという手もあるので、今回はあくまでもモバイル端末で稼働するWebアプリケーションを自動テストする試みとしました。
自分も普段はiPadを使う機会が多く、パソコンを触る機械がめっきり減ったのですが、Webアプリケーションが使われる環境は、ますます携帯端末が多くなると思います。
共にエミュレータという点では同じなのですが、Android Studioで仮想端末を立てる場合と、Chromeのエミュレータモードを使う場合とでは、前者はAppium経由、後者はChrome Optionだけの変更でSelenium経由という違いがあります。後者に至っては、ほぼPCで稼働するChrome相手という感覚です。
PC用のアプリケーションとモバイル用のアプリケーションでは、例えばナビゲーション機能が画面に表示されているPC用と、ナビゲーションボタンを押して機能が出現する携帯端末用画面、タブレットだとナビゲーションボタン押さなくてもナビ機能が画面に表示されている、ただし、デバイスを横向きの場合、など、テスト項目がPCだけの場合に比べて増えましたが、そこは、ALL Pairで間引いて網羅としました。このへんも、Gherkinのシナリオアウト・ラインが旨く使えて効率いいです。
実機を使うに越したことは無いのですが、Windows環境からiPhoneやiPadの自動テストを試せる点で、ChromeのMobile Emulationモードは、手軽です。