Upgrade to Pro — share decks privately, control downloads, hide ads and more …

appium-xcuitest-driverとCI環境

 appium-xcuitest-driverとCI環境

Tadashi Nemoto

January 20, 2017
Tweet

More Decks by Tadashi Nemoto

Other Decks in Programming

Transcript

  1. 2017/01/19
    iOS Test Night #2 Tadashi Nemoto
    appium-xcuitest-driverとCI環境

    View Slide

  2. 自己紹介
    • 根本 征 (github/tadashi0713)
    • 2016年4月に新卒でメルカリに入社
    • 2016年10月に作られたSETチームに所属
    • 現在はクライアント(iOS・Android)のE2Eテストを実装

    View Slide

  3. クライアントアプリのE2Eテスト
    • クライアントリリース前にQAが手動で行っていた回帰試験
    • Regionが増えていくと工数が多くなる & 繰り返しの作業が多

    • 自動化できる部分はAppiumを使ってテストできるように

    View Slide

  4. CI環境を早めに用意しておこう
    • 自分の環境でしか動かないテストにはしたくない
    • 後々放置状態になっていくのを避けたい
    • テスト結果が開発者・QAにも見える状況が望ましい
    • 実行しているところを確認したい(スクリーンショット・動画)
    • クラウドサービスを使うのが妥当と考えた

    View Slide

  5. 2つのクラウドサービスを検討
    • Sauce Labs
    • AWS Device Farm

    View Slide

  6. Sauce Labs
    • ブラウザテスト、モバイルテストの実行環境を提供している
    サービス
    • シミュレーターを起動して動作させる
    • .appファイル・.apkファイルをアップロードして実行
    • desiredCapabilitiesを変更して実行させる
    • Appiumのバージョンも選択可能
    • 以前はAppiumの開発元でもあった

    View Slide

  7. AWS Device Farm
    • 実機端末を使ったテスト実行環境を提供しているサービ

    • .ipaファイル・.apkファイルをアップロードして実行
    • Appiumは現在Python・Javaのみ対応
    • 該当テストファイルをzip化・アップロードさせて実行させる
    • Appiumのバージョンは選択できず、現在1.4固定

    View Slide

  8. AWS Device Farmを選択
    • SauceLabsのAndroidエミュレーターでテストを実行するのに
    制約が多かった
    • Google Play Serviceのバージョンなど
    • AWS Device Farmは両OS(iOS9)正しく動作したため選択
    • Jenkins プラグインを利用して定期実行できる環境を構築

    View Slide

  9. appium-xcuitest-driverの登場
    • iOS10からUIAutomation廃止
    • 今までのUIAutomationを使っていたAppiumは使えない
    ことに
    • Appium1.6からXCUITestをベースにしたwebdriverを提供
    • appium-xcuitest-driver
    • https://github.com/appium/appium-xcuitest-driver

    View Slide

  10. AWS Device Farmの対応状況
    • Appiumのバージョンは固定されており、現在は1.4
    • 現状はappium-xcuitest-driverは動かせない
    • もうじき1.6.3にアップデートされるらしい
    • https://forums.aws.amazon.com/ann.jspa?annID=4341

    View Slide

  11. Sauce Labsは対応済
    https://saucelabs.com/blog/new-support-for-ios-10-simulator-
    testing-and-more-real-devices-

    View Slide

  12. 学んだこと
    • クラウドの制約はテストを実行できる・できないに関わるのでよ
    く調べて理解することが重要だと感じた
    • 特にAppium・クライアントOSのバージョン
    • 対応の早さも今後見ていきたい
    • 制約を把握した上でツール選択することも大事だと感じた
    • 今回だとAWS Device Farmで実行させられるために、言語
    はPythonにした

    View Slide