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

Karateによる UI Test Automation 革命 / UITests-Automation-with-Karate

Karateによる UI Test Automation 革命 / UITests-Automation-with-Karate

システムテスト自動化カンファレンス2019
KarateによるUIテスト革命

Takanori Suzuki

November 30, 2019
Tweet

More Decks by Takanori Suzuki

Other Decks in Technology

Transcript

  1. 1
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    Karate による
    UI Test Automation ⾰命
    2019/11/30
    Acroquest Technology Co., Ltd.
    鈴⽊ 貴典

    View full-size slide

  2. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    2
    ⾃⼰紹介
    n 所属
    • Acroquest Technology Co., Ltd.
    n 主な業務分野
    • システムアーキテクト
    • IoTサービス開発
    • ビッグデータ処理プラットフォーム
    • サーバーレス・アーキテクチャ
    n バックグラウンド
    • エンタープライズ/ミッションクリティカル
    • SEPG/開発/マネジメント
    • Java/Python
    鈴⽊ 貴典
    シニアテクニカルアーキテクト
    Acro = 先端を
    quest = 探究する

    View full-size slide

  3. Acroquestのミッション・ビジョン
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    3
    テクノロジストチームとして
    ビジネスの⾰新的価値創出に挑戦する
    ビジョン
    Acroquestの創り出す技術で
    地球を感動で進化させる
    ミッション

    View full-size slide

  4. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    4
    テスト⾃動化における
    課題

    View full-size slide

  5. テスト⾃動化における課題
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    5
    • Integration/UIの
    テストを作成する
    難易度が⾼い
    • そもそも
    テスト⾃動化エンジニア
    がいない
    • メンテナンスコストが
    ⾼い

    View full-size slide

  6. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    6
    ⾃動化が必要なのは
    分かっている。
    でも、
    できていない、
    挫折してしまう。。。
    そういった問題を
    どうにかしたい︕

    View full-size slide

  7. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    7
    Karate
    Web-Services Testing Made Simple

    View full-size slide

  8. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    8
    Karate
    Web-Services Testing Made Simple
    Test Automation Made Simple

    View full-size slide

  9. 幅広いテストに対応
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    9
    テストダブル
    (モック)
    APIテスト UIテスト
    性能テスト
    REST-API
    GraphQL
    gRPC
    WebSocket
    ファイル
    ブラウザ
    Windowsアプリ
    Android/iOS
    (Appium)
    バックエンドのモック化 Gatling連携

    View full-size slide

  10. Karateによるテスト⾃動化
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    10
    • 単⼀のツールで
    幅広いテストに対応可能
    • DSL(Garkin記法)で
    シナリオテストが可能
    (Non-Programming)
    • 学習コストが低い

    View full-size slide

  11. GitHub stars of Karate
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    11
    2019-11-30
    2575 Stars

    View full-size slide

  12. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    12

    テスト⾃動化
    対応スピードの
    向上

    テスト⾃動化
    導⼊プロジェクト
    の拡⼤

    ⾃動化範囲が
    広くなったこと
    による安⼼感
    Karateによって私たちが得られたこと

    View full-size slide

  13. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    13
    Karate による
    UIテスト

    View full-size slide

  14. KarateによるUIテストのシナリオ
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    14
    Feature: Browser testing automation
    Background:
    * configure driver = { type: 'chrome' }
    Scenario: Search intuit/karate in GitHub
    * def keyword = 'karate’
    Given driver 'https://github.com/search’
    And waitUntil(”document.title == 'Code Search · GitHub’”)
    And input('input[name=q]', keyword)
    When submit().click('#search_form button.btn‘)
    Then match driver.title == 'Search · karate · GitHub’
    And match text('li.repo-list-item h3:first-child a') == 'intuit/karate'
    * screenshot()
    KarateDriverを利⽤したUIテスト
    WebDriverの指定
    画⾯オープン
    画⾯⼊⼒
    画⾯遷移
    結果の確認
    画⾯キャプチャ

    View full-size slide

  15. KarateによるUIテストのメリット
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    15
    ③テストレポートの
    出⼒
    ①UIテストの
    ユニットテスト化
    • VS Code プラグインよる
    効率的なテスト作成/実⾏
    • 単発/連続したシナリオの実⾏
    ②バックエンドに対する
    操作も考慮した
    シナリオの構築
    • DSLによる直観的なテストケース記述
    • JavaやJSの処理を呼び出すことができ、
    環境の初期化や非同期処理にも対応可能
    • テストレポートの⾃動出⼒
    • 画⾯キャプチャの⾃動取得

    View full-size slide

  16. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    16
    実現したかったこと
    テストの効率化

    View full-size slide

  17. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    17
    実現したかったこと
    テストの効率化
    プロダクトの品質向上

    View full-size slide

  18. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    18
    実現したかったこと
    テストの効率化
    プロダクトの品質向上
    QoLの向上

    View full-size slide

  19. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    19
    テスト⾃動化が
    容易になる
    テストの
    アジリティが
    向上する
    エンジニアが
    楽になる
    プロダクトの
    質が向上する
    ユーザーも
    よろこぶ
    ⼈々の⼈⽣の質が
    向上する

    View full-size slide

  20. Evolve the Earth with Emotion of Technology
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    20
    Quality of Testing
    for
    Quality of Life

    View full-size slide

  21. 参考
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    21
    1. Karate – GitHub
    • https://github.com/intuit/karate
    2. Karate for Complex Web-Service API Testing (Peter Thomas)
    • https://www.slideshare.net/intuit_india/karate-for-complex-webservice-api-testing-by-peter-thomas
    3. APIテスト⾃動化ツール「Karate」のまとめ
    • https://qiita.com/takanorig/items/46098b066f1216e3ca89
    4. マイクロサービスにおけるテスト⾃動化 with Karate (Takanori Suzuki)
    • https://www.slideshare.net/takanorig/microservices-test-automation-with-karate/
    5. Example for Karate Standalone (Takanori Suzuki)
    • https://github.com/takanorig/example-karate-standalone

    View full-size slide