💬
iOS開発でMaestroを試してみた
公式ドキュメントはこちら
インストール方法
$ curl -Ls "https://get.maestro.mobile.dev" | bash
$ brew tap facebook/fb
$ brew install facebook/fb/idb-companion
サンプルをダウンロードしてみる
$ maestro download-samples
$ cd ./samples
$ unzip sample.zip
$ xcrun simctl install Booted Wikipedia.app
$ maestro test ios-flow.yaml # or maestro test --continuous ios-flow.yaml
ios-flow.yamlを編集して、コマンドを入力することで実行できる
appId: org.wikimedia.wikipedia
---
- launchApp
- tapOn: "次へ"
- tapOn: "場所"
- tapOn: "保存済み"
- tapOn: "履歴"
- tapOn: "検索"
Maestro Studioを使ってみる
$ maestro studio
ローカルサーバが立ち上がって、Web上でMaestroコマンドを生成可能になる
コマンド一覧
-
- launchApp
アプリを立ち上げる -
- tapOn: "次へ"
次へと書かれているテキストをタップすることが可能- ※ アプリ内のテキスト, アクセシビリティラベル, 座標を指定することが可能
-
- assertVisible: "次へ"
アプリ内に要素が表示されているかどうかを確認する -
- inputText: "Hello World"
テキストを入力することができる- ※ (もちろんですが)テキストにフォーカスが当たっている場合のみ
-
- pasteText
テキストの貼り付け -
- runFlow: anotherFlow.yaml
別のファイルをコマンドから実行することができる -
- scroll:
下方向へスクロールする- swipeコマンドを用いることで、スクロール方向を調整することが可能
-
- stopApp
アプリを停止する -
- takeScreenshot: MainScreenshot
スクショを撮影することが可能 -
- startRecording: <screen-recording-file-name>
と- stopRecording
で画面録画を行うことができる
(他にもコマンドがあるので、詳細はコマンド一覧)
よさそうなこと
-
maestro studio
コマンドを使うことでWeb上でMaestroコマンドを生成可能になる - 人為的な待機ブロックを用意しなくても良いとのこと (参考: waitコマンド)
- 条件式はあまり好まれないとのこと (参考: conditionsコマンド)
できなさそうなこと
- 実機へのサポート (Simulatorのみサポートしているとのこと) (参考: iOS - UIKit)
感想
手続き型のように命令を順に書いていくのは分かりやすいと感じました。
iOSでもUIテストにMaestroを導入できそうだと感じました。
参考
Discussion