appium-xcuitest-driverとCI環境
by
Tadashi Nemoto
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
2017/01/19 iOS Test Night #2 Tadashi Nemoto appium-xcuitest-driverとCI環境
Slide 2
Slide 2 text
自己紹介 • 根本 征 (github/tadashi0713) • 2016年4月に新卒でメルカリに入社 • 2016年10月に作られたSETチームに所属 • 現在はクライアント(iOS・Android)のE2Eテストを実装
Slide 3
Slide 3 text
クライアントアプリのE2Eテスト • クライアントリリース前にQAが手動で行っていた回帰試験 • Regionが増えていくと工数が多くなる & 繰り返しの作業が多 い • 自動化できる部分はAppiumを使ってテストできるように
Slide 4
Slide 4 text
CI環境を早めに用意しておこう • 自分の環境でしか動かないテストにはしたくない • 後々放置状態になっていくのを避けたい • テスト結果が開発者・QAにも見える状況が望ましい • 実行しているところを確認したい(スクリーンショット・動画) • クラウドサービスを使うのが妥当と考えた
Slide 5
Slide 5 text
2つのクラウドサービスを検討 • Sauce Labs • AWS Device Farm
Slide 6
Slide 6 text
Sauce Labs • ブラウザテスト、モバイルテストの実行環境を提供している サービス • シミュレーターを起動して動作させる • .appファイル・.apkファイルをアップロードして実行 • desiredCapabilitiesを変更して実行させる • Appiumのバージョンも選択可能 • 以前はAppiumの開発元でもあった
Slide 7
Slide 7 text
AWS Device Farm • 実機端末を使ったテスト実行環境を提供しているサービ ス • .ipaファイル・.apkファイルをアップロードして実行 • Appiumは現在Python・Javaのみ対応 • 該当テストファイルをzip化・アップロードさせて実行させる • Appiumのバージョンは選択できず、現在1.4固定
Slide 8
Slide 8 text
AWS Device Farmを選択 • SauceLabsのAndroidエミュレーターでテストを実行するのに 制約が多かった • Google Play Serviceのバージョンなど • AWS Device Farmは両OS(iOS9)正しく動作したため選択 • Jenkins プラグインを利用して定期実行できる環境を構築
Slide 9
Slide 9 text
appium-xcuitest-driverの登場 • iOS10からUIAutomation廃止 • 今までのUIAutomationを使っていたAppiumは使えない ことに • Appium1.6からXCUITestをベースにしたwebdriverを提供 • appium-xcuitest-driver • https://github.com/appium/appium-xcuitest-driver
Slide 10
Slide 10 text
AWS Device Farmの対応状況 • Appiumのバージョンは固定されており、現在は1.4 • 現状はappium-xcuitest-driverは動かせない • もうじき1.6.3にアップデートされるらしい • https://forums.aws.amazon.com/ann.jspa?annID=4341
Slide 11
Slide 11 text
Sauce Labsは対応済 https://saucelabs.com/blog/new-support-for-ios-10-simulator- testing-and-more-real-devices-
Slide 12
Slide 12 text
学んだこと • クラウドの制約はテストを実行できる・できないに関わるのでよ く調べて理解することが重要だと感じた • 特にAppium・クライアントOSのバージョン • 対応の早さも今後見ていきたい • 制約を把握した上でツール選択することも大事だと感じた • 今回だとAWS Device Farmで実行させられるために、言語 はPythonにした