コガネブログ

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

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

はじめに

https://airtest.netease.com/

「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 プロジェクトに導入する方法などがあります
興味があれば、こちらも試してみていただけるといいかなと思います