LoginSignup
38
37

More than 5 years have passed since last update.

AppiumとCalabashについて調べてみた

Posted at

モバイルアプリのテスト自動化ツールであるAppiumとCalabashに関していろいろ調べたのでメモとして記載します。
もし加筆・訂正すべき情報があればコメントいただけるとうれしいです。

Appium・Calabash共通

サポート環境

  • iOS, Android両方に対応(AppiumのみFirefoxOSも対応)
  • シミュレータ, 実機どちらにも対応

仕組み

どちらも、アプリのテストツールをラップするサーバを起動させ、そのAPI経由でアプリを操作する仕組み。

テスト自動化ツール

  • iOS - UI Automation
  • Android - UiAutomator (もしくはInstrumentation)

クラウド

  • AWS Device Farmで使用可能

Appium

動作の仕組み

開発PC上で、SeleniumのWebDriver JSON wire protocolに準拠したAPIを持つサーバを起動させ、そのAPIを経由してアプリを操作する。

UI_automation_test_figures.001.jpg

記述言語

多くのプログラミング言語に対応
http://appium.io/slate/en/master/?ruby#list-of-client-libraries-with-appium-server-support

メリット

  • テスト用に特別にビルドする必要がなく、リリース相当のものでテストできる。
  • GUIツールが使いやすい。Inspectorで操作したいパーツを確認しながら、テストコードを生成できる。

デメリット

  • テストシナリオの作成・編集・解読にプログラミングスキルが必要。

Calabash

動作の仕組み

シミュレータ・実機側でサーバを起動させ、そのAPI経由でアプリ操作を行う。iOSの場合はアプリに組み込まれたcalabash.frameworkがCalabash Serverを起動する。Androidの場合はInstrumentation Test Serverアプリがインストールされる模様。cucumberコマンドを実行すると、テストシナリオに従ってAPIが呼ばれ、テストが実行される。

UI_automation_test_figures.002.jpg

記述言語

  • Gherkin https://cucumber.io/docs/reference
  • 各テストステップのカスタマイズにはrubyの知識が必要
    • 他の言語でも書けてもよさそうだが、ドキュメントが見つからない。

メリット

  • テストシナリオの可読性。Gherkinはプログラマでなくても読みやすい。その気になれば日本語でも書ける。そのまま検査仕様書できるかも?
Scenario: Example steps
  Given I am on the Welcome Screen
  Then I swipe left
  And I wait until I don't see "Please swipe left"
  And take picture
  • Gherkinの解釈結果はカスタマイズできるため、AndroidとiOSでそれぞれの解釈結果を用意することで、両OSで共通のテストシナリオを使用できる。

デメリット

  • テストシナリオを作成するのが難しい。このボタンはどうやったら指定できるか?等の確認にはCalabashが用意するCLIを使用する必要あり。
  • iOSではCalabash用に特別ビルドを行う必要がある。通常のTargetとCalabash用Targetの同期を取らないといけない。TargetとSchemeが自動生成されるのでWorkspaceが汚れる。

その他

Calabashで困ったこと

  • OSアップデート直後はうまく動作しなくなる。
  • 安定して動いてくれないことがある。特にUIAlertView関係。
  • 日本語入力がうまくできない(Appiumはできる)。

!!!: Appiumは未確認なだけで同じような問題はあるかもしれません。

参考リンク

38
37
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
38
37