コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】「Airtest IDE」を使用して Android のゲームで画像認識による UI の自動テストを試してみた

はじめに

「Airtest IDE」を使用することで、Android のゲームで
画像認識による UI の自動テストを行うことができます

使用例

 
試しに Airtest IDE を使用して Android 版のデレステで UI の自動テストをしてみました
上記の動画では指定した画像を認識させて、順番にタッチしていくテストを行っています
Airtest IDE を使用することで、このように画像認識による UI のテストが可能になります

この記事では、Airtest IDE を使用して Android のゲームで
画像認識による UI の自動テストを行う方法を紹介していきます

検証環境

  • Windows 10
  • Android 7.0
  • Airtest IDE v1.0.0

導入方法

  1. 下記のページから「Airtest IDE」をダウンロードします
    https://airtest.netease.com/
  2. ダウンロードした ZIP ファイルを展開します
  3. 展開したフォルダ内の「AirtestIDE.exe」を実行します
  4. ログイン画面が表示されたら、右下の「Skip」を選択します

Android と接続

f:id:baba_s:20181001213556p:plain

PC に Android を接続したら、画面右の「Devices」から「connect」を選択します
(接続中の Android が一覧に表示されていない場合は「refresh ADB」を押します)

f:id:baba_s:20181001213811p:plain

接続が完了すると、Android の画面が「Device Screen」に表示されます

テスト用のスクリプトの作成

まずは、画面の特定の位置をタッチする処理を作成してみます

f:id:baba_s:20181001214111p:plain

「Airtest Assistant」の「touch」を選択します

f:id:baba_s:20181001214211p:plain

すると、領域選択モードになるので「Device Screen」で
自動でタッチしてほしい領域を選択します

f:id:baba_s:20181001214216p:plain

すると、「Script Editor」に指定した領域をタッチする命令が追加されます

f:id:baba_s:20181001214458p:plain

他にも、「sleep」を選択すると、指定した秒数待機する命令を追加できます

f:id:baba_s:20181001214655p:plain

「wait」を選択すると、指定した画像が表示されるまで待機する命令が追加されます

f:id:baba_s:20181001215053p:plain

「swipe」を選択すると、指定した領域をスワイプする命令を追加できます

f:id:baba_s:20181001215753p:plain

「assert_exists」を選択すると、指定した画像が存在しない場合に
アサートを投げる命令が追加されます

f:id:baba_s:20181001215918p:plain

「assert_not_exists」を選択すると、指定した画像が存在する場合に
アサートを投げる命令を追加できます

f:id:baba_s:20181001215356p:plain

そして、テスト用のスクリプトの作成が完了したら
再生ボタンを押すか、F5 を押すことでテストを開始できます

f:id:baba_s:20181001220917p:plain

テストに成功すると「Log Viewer」に「OK [Finished]」と表示されます

このように、「Airtest IDE」を使用することで、Android のゲームで
画像認識による UI の自動テストを行うことができます

さいごに

今回は「Airtest IDE」による、画像認識の UI の自動テストの方法を紹介しました

https://airtest.netease.com/docs/en/1_quick_start/1_how_to_write_the_first_script_for_your_game.html

「Airtest IDE」のクイックスタートは上記の公式サイトでも公開されているので、
こちらも併せて参考にして頂ければと思います

また、今回紹介した方法以外にも「Airtest IDE」では細かいテストの設定が可能です

https://poco.readthedocs.io/en/latest/source/doc/integration.html

例えば「PocoSDK」というものを Unity プロジェクトに導入する方法などがあります
興味があれば、こちらも試してみていただけるといいかなと思います

関連記事