Espresso Driver を用いた Appium テストとその仕組み
by
Kyohei Kato
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Espresso Driver を用いた Appium テストとその仕組み 1 Cookpad.apk #2
Slide 2
Slide 2 text
自己紹介 •加藤 恭平 (ksfee684) ‣ 技術部品質向上グループ ‣ レシピサービスの Android アプリで UI テストなどを担当 ‣ おすすめは M:tG
Slide 3
Slide 3 text
アジェンダ •Appium in Android における仕組み ‣ UIAutomator 概要 ‣ UIAutomator Driver •Espresso Driver 紹介 ‣ UIAutomator との比較 ‣ 実際どうなのか •おまけ ‣ Project Nitrogen !3 3
Slide 4
Slide 4 text
Appium
Slide 5
Slide 5 text
Appium •モバイル端末向け自動テスト ツール ‣HTTP Server (Node) ‣Android, iOS, Windows, macOS
Slide 6
Slide 6 text
UIAutomator •UI テスティングフレームワーク ‣ Accessibility Service を利用 ‣ アプリを越えて端末操作や情報取得が可能 ‣ e.g. UI Automator Viewer 6
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
UIAutomator × Appium •UIAutomator Driver として存在 •現在 Android のデフォルト Driver !8 8
Slide 9
Slide 9 text
ςετରBQL 6*"VUPNBUPS4FSWFSBQL "OESPJE5FTUBQL UIAutomator Driver
Slide 10
Slide 10 text
UIAutomator Driver 6*"VUPNBUPS4FSWFS XEIVC TFTTJPOTFTTJPO@JE TUBUVT ESJWFSTBWF@TDSFFOTIPU 3VCZ 10 6J"VUPNBUJPOUBLF4DSFFOTIPU "QQJVN4FSWFS XEIVC TFTTJPOTFTTJPO@JE TUBUVT
Slide 11
Slide 11 text
UIAutomator × Appium •Pros ‣ 自身のアプリに限らず操作を行う事が可能 • ブラックボックスな自動UIテストを組むことが可能 • テキストを利用した操作から Resource ID まで •Cons ‣ テスト対象のアプリの操作が難しい • ネットワーク通信待ち合わせのためスリープ !11 11
Slide 12
Slide 12 text
Espresso Driver
Slide 13
Slide 13 text
UIAutomator Driver 6*"VUPNBUPS4FSWFS XEIVC TFTTJPOTFTTJPO@JE TUBUVT ESJWFSTBWF@TDSFFOTIPU 3VCZ 13 6J"VUPNBUJPOUBLF4DSFFOTIPU "QQJVN4FSWFS XEIVC TFTTJPOTFTTJPO@JE TUBUVT
Slide 14
Slide 14 text
&TQSFTTP4FSWFS ESJWFSTBWF@TDSFFOTIPU 3VCZ XEIVC TFTTJPOTFTTJPO@JE TUBUVT Espresso Driver XEIVC TFTTJPOTFTTJPO@JE TUBUVT
Slide 15
Slide 15 text
Espresso Driver •appium-espresso-driver ‣ Espresso を Driver として利用 ‣ 対象アプリの署名を書き換え
Slide 16
Slide 16 text
Espresso × Appium •Pros ‣ アプリの Context にアクセス可能に ‣ IdlingResource によってスリープによる待ち合わせが不要 ‣ UIAutomator と同様にブラックボックスに記述できる! •Cons ‣ Espresso ができること以外はできない ‣ Debug ビルドのみ対応 16
Slide 17
Slide 17 text
実際どうなのか •実際に Driver を置き換えることでどうなるのか ‣ 不必要なスリープの減少 • シナリオ簡潔さ向上 ‣ 既存の View 探索以外の手法 ‣ Driver の指定を変更するだけで便利 17
Slide 18
Slide 18 text
Appium Ruby Client •Capability の automationName を切り替えるだけ? •appium_lib では Espresso Driver への切り替えが シュッとできない •appium_lib_core を直接利用
Slide 19
Slide 19 text
まとめ •appium-espresso-driver はいいぞ ‣ 互換性もだいたいあるぞ •UIAutomator から抜け出してシナリオ洗練させていくぞ 19
Slide 20
Slide 20 text
Project Nitrogen
Slide 21
Slide 21 text
Project Nitrogen •Write once, run everywhere
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
Espresso(Robolectric) Driver •Robolectric (JVM) 上で実行 •Capability によって切替可能に •対象アプリの実装が必要となるので、 既存アプリのテストケースとしてサーバを実装
Slide 24
Slide 24 text
Espresso(Robolectric) Driver •シュッとできなかった ‣ JUnit の別スレッドで Robolectric が動かない https://github.com/robolectric/robolectric/issues/ 3829