背景
仕事でUITestの自動化をいろいろ試してみたのでその時のメモ
結論
iOSやるときはApple純正が一番学習コストが低い
試してみたUITest
- Appium
- XCUITest
- KIF
感想
Appium
- 周りに知っている人がいない人に対しては学習コストが高い
- サンプルが世の中に少ない
- Inspecterでレコーディングの途中でアプリが落ちる
- Inspecterしているとき一つ一つのアクションを記録するのにすごく時間がかかる
- Inspecterだけでコーディングするのは不可能だと思われる
- InspecterはGUIでしか使えないっぽい?
- GUIでAppiumサーバーを立てるとログが見にくいのでCUIで立ててGUIのInspecterで要素の確認を行うのがbetterだと思う
- Androidも使える
問題点
- WKWebViewは座標タップに対応していない(issueで上がってたからいつか直るといいな,まぁissueは半年くらい放置されていたけど。。。)
XCUITest
- Xcode7から標準搭載
- iOS9以上から対応
- レコーディング機能があるがアニメーション等がある場合waitがないと画面が描画される前にテストが流れきってしまう
- Apple公式
- 特定の座標をタップするやり方が謎
KIF
AccessibilityLabelを設定してないと使い物にならない可能性がある
理由:Elementを探すのにAccessibilityLabelを使っているため、ソースを見たがXPathとか他の指定方法がなさそうUIAccessibilityElementを使ってUIテストを実施しているがApple的には非公開?(リファレンスに詳細がない)っぽい
まとめ
どれも長所短所がありこれ使えば最強というのはまだないイメージ
XCUITestがObjective-c,Swiftともに資産が生かせるのでiOSのUITest的には便利そう
ただWebViewないの要素がタップできないのが難点
今後座標タップが実装されるのを期待
各UITestの使い方はググってください。。。