0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

iOSのテストを自動化してみる

Last updated at Posted at 2024-10-01

実現したいこと

あくまでiosアプリを自動的に操作して、自動的にエビデンスを取る仕組みを作りたいということ。
内部結合・外部結合といった感じで内容によっては自動化できないものもあるがそこはまた別の機会に。

環境構築

※Mac bookのm1 Pro

  • maestroを入れる
  • javaを入れる
  • Facebook IDBを入れる(iOS自動化をお助け)

自動化してみる

以下のコマンドを実行し、シミュレーターを開く

open -a Simulator

サンプルを落とす

maestro download-samples

以下を実行して、サンプルアプリをシミュレーターにインストールする。

cd samples
unzip sample.zip
xcrun simctl install Booted Wikipedia.app

サンプルを実行したらこのように開かれる。

maestro test ios-flow.yaml

image.png

うん、アプリを開いただけだ。

さっきコマンドで指定したサンプルの「ios-flow.yaml」の中身はこちら。
image.png

appIdはxcode側にあるBundle Identifierを指定。「launchApp」がアプリ起動を表す。操作に関しては「launchApp」しか書いていないから、指定したアプリのidを開いて終わった。このファイルに自動操作のための記述をしていけばいい。そのあとはmaestroで用意されているコマンドを書いていけばいい。「- tapOn: "ユーザID"」みたいに書いたら、「ユーザID」という文字が書かれたボタンやテキストなど自動でタップしてくれる。ブラウザ操作する場合はhtmlのidなどを指定しなくてはならないケースがほとんどだが、これは便利。

Webシステムの自動テストの仕組みをガッツリ作ったこともあったが、それに比べたらちょっとアプリ操作速度は遅い。まあその自動操作をして自動画面キャプチャを撮ってもらう間に他の作業をやるのはかなりラクになると思う。

まとめ

他のテクニック(スクロールやテキスト入力、画面キャプチャし画像保存)はググれば出てくるので私も同じように書く必要もないので省略するが、便利であることは伝えられたかもしれない。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?