テストを行う前に、ビルドしたアプリケーションイメージを実機に転送し、起動しなければいけません
この転送・起動には、Android ではデバイス名と端末固有のデバイス ID が、 iOS ではデバイス名とこちらも端末固有の UUID が必要となります
テストフレームワークによっては端末と通信を行う IP アドレスも必要になると思いますので、そういった場合はこのタイミングで取得しておくと楽です
それでは、 Android の端末情報の取得についてから説明していきます
Android は開発用ツールである adb のコマンド結果をパースすれば OK です
デバイス名、 ID は adb devices を l オプションつきで実行すると一覧が列挙されるので、ここからテストしたい端末をパースします
IP アドレスは取得したデバイス ID を用いて shell ip addr show オプション付きで呼び出した結果をパースします
最後に MacOS 上ではなく Windows 上でミラーリングを実現したい場合の補足です
scrcpy/sndcpy は Windows にも対応しているので基本的には今まで紹介した処理を bat 化するだけで実現可能です
Windows には Automator はないので、ポップアップの抑制は別の Windows 対応の RPA ツールを使いましょう
scrcpy/Quick Time Player の録画機能は前述した通り無圧縮ですので、テストが増えてくるとすぐに録画マシンのディスク容量を食いつぶしてしまいます
そこで、実運用的にはエンコーディング処理を挟む必要があります
また、 scrcpy の録画機能は sndcpy と連動しておらず、音を拾うことができないので、録画に音声も含めたい場合には機能不足です
そこで、別のソフトの検証を行った結果、私たちは OBS Studio を採用しました
OBS Studio の基本的な使い方は web 上に公開してくださっている方が多数居るので全体説明は割愛して、自動化に関連する項目だけ紹介します
まず、OBS はプロファイル単位で種々の設定が可能で、起動時の引数でこのプロファイルの指定もできます
これにより、自動化用にプロファイルを何種類か作っておき、端末単位で使い分けるということができます
この際、プロファイルの名前にはデバイス名や ID を指定すると処理が楽になるのでお勧めです