Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unity + Airtest+Poco入門
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
うどん
March 24, 2021
0
5.7k
Unity + Airtest+Poco入門
うどん
March 24, 2021
Tweet
Share
More Decks by うどん
See All by うどん
モバイルゲーム事業における 内製デバイスファームの開発/運用事例
nitudon
0
280
【CEDEC2023】モバイルゲームのQA課題に組織でチャレンジ!〜子会社を跨いで挑戦するQA効率化の道のり〜
nitudon
0
3.8k
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
180
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
640
From π to Pie charts
rasagy
0
120
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
69
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
Site-Speed That Sticks
csswizardry
13
1.1k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
320
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Transcript
Unity+Airtest+Poco入門 〜お手軽実機でUnityの自動テスト〜 住田直樹
株式会社QualiArts (サイバーエージェントグループ) Unityクライアントエンジニア Unity/C#/Jenkins/Blender/Rust #UniTips #CA.unity 住田直樹 @udon_qu @nitudon
本日話すこと • AirtestとPocoの紹介 ◦ Airtestって?Pocoって? ◦ AirtestとPocoができること • 注意 ◦
Androidのケースのみ紹介(iOSも可能ですが、ちょっと手順が異なります) ◦ 本LTの自動テスト = UIテスト ▪ データと連動したE2Eテストではないです
1. AirtestとPoco
Airtest • NetEase社のモバイルゲーム向け自動テスト用フレームワーク(Python) ◦ https://airtest.netease.com/ ◦ IDEも公式で用意されている • シンプルな記述でUIのテストを実装できる ◦
タップやスワイプなどのUI操作 ◦ 画像認識ベースのUI検出
Airtest Airtest IDE • Airtest APIの補完 • 端末との接続機能 • 端末のキャプチャとUI操作
• テストの実行 • Pocoによるヒエラルキー解析 • テストレポート生成 etc...
Airtestのやり方 1. IDEでスクリプト書いて 2. 端末を接続して 3. IDE上で再生ボタンをポチる これだけ!
とてもシンプルなAirtest API • 画面をタップしたい! ◦ touch([0.1, 0.1]); • 待機したい! ◦
sleep(3); • 文字を入力したい! ◦ text(“hogehoge”); • スクリーンショットを撮りたい! ◦ snapshot(msg="hogehoge")
画像認識ベースのUIテストの実装 • 画像認識して特定のUIをタッチしたり待ったりしたい! ◦ IDEで用意されているAirtest Assistantを活用
Poco • 同じく提供されているUIの自動テスト用のフレームワーク ◦ https://github.com/AirtestProject/Poco ◦ Unity、cocos、ネイティブアプリなどに対応 ▪ uGUI、nGUI、FairyGUIに対応
Pocoの機能 • ヒエラルキー解析によるUI処理 ◦ Unity上のヒエラルキーでの階層とGameObject名を取得 ▪ 特定のGameObjectのタップ • 親子関係も把握できる •
Component名も取れる • Textの中身も取れる アプリケーションの実装に対してメタ的なテストを実現
ヒエラルキーベースのUIテストの実装 • オブジェクトをタップしたい! ◦ poco(“hoge”).click(); • オブジェクトの子をタップしたい! ◦ poco(“hoge”).child().click(); •
オブジェクトがあるか確かめたい! ◦ poco(“hoge”).is_exists(); • オブジェクトが出てくるまで待ちたい! ◦ poco(“hoge”).wait_appearance();
2. Airtestの使い方
Airtestの環境構築 • Airtest IDEのインストール ◦ https://airtest.netease.com/ • Android端末の用意と接続 ◦ USBデバッグができるところまで
Airtest IDEと 端末の接続 1. 「Mobile Phone Connection」で 端末を確認 2. 「connect」を押して接続
3. 端末の画面が表示されること を確認
実装と実行 1. Script Editorにコードを書く 2. 再生ボタンを押す
Airtest レポートの生成 実行した後に を押す (再生ボタンの2つ横)
3. Pocoの使い方
Pocoを使うために必要なこと • Pocoのライブラリのインポート ◦ pip install pocoui • Unityアプリケーション側へのSDK導入 ◦
GitHubで公開されているので導入(次のスライド)
Unityアプリケーション側でのSDK導入 • https://github.com/AirtestProject/Poco-SDK/tree/master/Unit y3D ◦ 基本的に全てAssetsに入れる ▪ ※GUIだけ使うものだけ入れる • 「fairygui」「ngui」「ugui」から一つ
シーンの調整 • PocoManagerをシーンに配置するだけ ◦ 後はビルドして反応するか確認
Poco Assistant • Poco Assistant IDE上でのUnity側のヒエラル キー解析機能 アプリを起動してヒエラルキーを 確認しながらスクリプトが書ける! 控えめに言って神機能
4. まとめ
Airtest+Pocoの自動テストはいいぞ • 利点 ◦ UIのテストが直感的に実装できる ▪ 画像認識ベースとヒエラルキーベースの2つを実現 ▪ Pythonの経験がなくても余裕 ◦
提供されている機能が豊富 ▪ 専用のIDEからHTMLレポートの生成まで ◦ ヒエラルキーベースのテストの優秀さ ▪ アセットの更新に強いテストを実現
活用事例 • チュートリアルの自動テスト ◦ チュートリアルは各機能にアクセスしがち ◦ 遷移が特殊なケースもあって、不意に壊れることも → Airtestで定期的に回して正常性のチェック
活用事例 • 多人数対戦の正常型チェック ◦ 多人数が必要な機能はそもそも複数台操作したりして大変 ▪ 単純なケースでも人や時間を要する → 複数台の端末をAirtestで操作してbot操作を実現
APIドキュメント • Airtest ◦ https://airtest.readthedocs.io/en/latest/all_module/airtest .core.api.html • Poco ◦ https://poco.readthedocs.io/en/latest/source/poco.pocof
w.html
Qiitaも書いてます • Airtest+Pocoで始めるUnityの自動テスト ◦ https://qiita.com/Nitudon/items/0c5c527841388fec22ed ◦ 内容 ▪ AirtestとPocoの説明 ▪
Airtest IDEの最低限の使い方 ▪ Pocoの機能紹介 ▪ スクリプトの例示 こちらも良ければ!
Airtestの自動テストはいいぞ Let’s Airtest