Ranorex:モバイルテストの実行動画を取得する(Android編)
Ranorexには、テスト実行時の動画をレポートとして出力する機能があります。しかしながら、この機能はRanorexがインストールされているクライアント(Windowsマシン)でのみ利用可能であり、モバイルテストのようなテストが他のプラットフォームで実行される場合においては利用することができません。
本記事では、adb(Android Debug Bridge)コマンドを利用した、Androidのモバイルテストで実行動画を取得する方法について紹介します。
※本記事は以下の環境を使用して動作の確認をおこなっています。
・Ranorex v11.3.3
・Windows 10 Pro(22H2)
・Android 14 / Pixel 8
動画の取得方法
adbコマンドを使用することで、モバイルデバイスの動画を記録することや、その動画をコマンド実行環境(Windowsマシン)に取得することができます。
モバイルデバイスの動画を記録するための実行コマンド:
"C:\Program Files (x86)\Ranorex\Studio\Bin\Runtime\RxEnv\Android\Tools\adb.exe" -s {対象のモバイルデバイス名} shell screenrecord /sdcard/{動画ファイル名}.mp4
動画をコマンド実行環境(Windowsマシン)に取得するための実行コマンド:
"C:\Program Files (x86)\Ranorex\Studio\Bin\Runtime\RxEnv\Android\Tools\adb.exe" -s {対象のモバイルデバイス名} pull /sdcard/{取得したい動画ファイル名}.mp4 {取得先のフォルダ先のパス}
※adbコマンドは、Ranorexにインストールディレクトリにあるモジュール(adb.exe)を使用しています。
※パラメーターで指定する{対象のモバイルデバイス名}は、以下のコマンド実行にてデバイス名を確認いただくか、Ranorexのエンドポイントに設定されてる対象エンドポイントの名前を指定してください(エンドポイントを追加した際に、エンドポイント名にはデバイス名が使用されます)。
adb devices
Ranorexでの利用方法
以下のように、adbコマンドをRanorexのソリューションに組み込むことで、Androidのモバイルテストで動画を取得することができます。
① テストスイートにて、テストケースにSETUPとTEARDOWNを追加します。SETUPには動画を記録をおこなうためのレコーディングモジュールを設定し、TEARDOWNには動画の記録終了と取得をおこなうためのレコーディングモジュールを設定します。以下のような構成になります。
② 動画の記録をおこなうためのレコーディングモジュールにRun applicationアクションを追加し、各項目に以下の設定をおこないます。
- File name: C:\Program Files (x86)\Ranorex\Studio\Bin\Runtime\RxEnv\Android\Tools\adb.exe
- Arguments: -s {対象のモバイルデバイス名} shell screenrecord /sdcard/{動画ファイル名}.mp4
※Argumentsで指定する動画ファイル名は、記録する動画のファイル名を設定します。ファイル名は任意です。
※動画の記録されるまでに多少のタイムラグが発生します。これによりテスト開始時の動画が記録されない場合は、Run applicationアクションの後にDealyアクションを追加し、待ち時間(1秒程度)を設定することで調整してください。
③ 動画の記録終了と取得をおこなうためのレコーディングモジュールに以下のアクションを追加し、各アクションの項目に設定をおこないます。
アクション#1: Run application
- File name: C:\Windows\System32\taskkill.exe
- Arguments: /F /T /IM adb.exe
アクション#2: Dealy
アクション#3: Run application
- File name: C:\Program Files (x86)\Ranorex\Studio\Bin\Runtime\RxEnv\Android\Tools\adb.exe
- Arguments: -s {対象のモバイルデバイス名} pull /sdcard/{取得したい動画ファイル名}.mp4 {取得先のフォルダ先のパス}
#1のRun applicationアクションで、動画を録画した際に起動されるadbコマンドのプロセスを終了します。これにより動画の録画が終了します。
adbコマンドのプロセスのプロセスを終了にタイムラグが発生するため、#2のDealyアクションにて待ち時間(2秒程度)を設定して調整します。
#3のRun applicationアクションで、クライアントの指定フォルダ先に動画が保存されます。
※#2の待ち時間が短い場合、取得した動画が正しく再生されません。その場合は、待ち時間を増やして調整してください。
録画時間における制限
デフォルト設定時に録画可能な時間の制限が3分に設定されているため、3分以上かかるテスト実行の動画を取得することができません。対応策として、動画を記録するための実行コマンドに、–time-limitオプションを指定し、制限時間(単位:秒)を調整してください。
※本オプションは、Android 14で動作することを確認しております。また、Android 13では動作しないことも確認しており、環境やAndroidの古いバージョンによっては利用ができない可能性があります。
実行コマンド例(制限時間を1時間(3600秒)にした場合):
"C:\Program Files (x86)\Ranorex\Studio\Bin\Runtime\RxEnv\Android\Tools\adb.exe" -s {対象のモバイルデバイス名} shell screenrecord --time-limit 3600 /sdcard/{動画ファイル名}.mp4
3分以上かかるテストを実行した時の結果:
まとめ
Android環境のみの紹介となりますが、本来、Ranorexでは対応していないモバイルテストでの動画レポート機能も、本記事の方法でテスト実行時の動画を取得することができますので是非、ご活用ください。