Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unity + Airtest+Poco入門
Search
うどん
March 24, 2021
0
5.6k
Unity + Airtest+Poco入門
うどん
March 24, 2021
Tweet
Share
More Decks by うどん
See All by うどん
モバイルゲーム事業における 内製デバイスファームの開発/運用事例
nitudon
0
270
【CEDEC2023】モバイルゲームのQA課題に組織でチャレンジ!〜子会社を跨いで挑戦するQA効率化の道のり〜
nitudon
0
3.8k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Music & Morning Musume
bryan
46
7k
Embracing the Ebb and Flow
colly
88
4.9k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Context Engineering - Making Every Token Count
addyosmani
9
520
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Why Our Code Smells
bkeepers
PRO
340
57k
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