1Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Karate による
UI Test Automation ⾰命
2019/11/30
Acroquest Technology Co., Ltd.
鈴⽊ 貴典
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
2
⾃⼰紹介
n 所属
• Acroquest Technology Co., Ltd.
n 主な業務分野
• システムアーキテクト
• IoTサービス開発
• ビッグデータ処理プラットフォーム
• サーバーレス・アーキテクチャ
n バックグラウンド
• エンタープライズ/ミッションクリティカル
• SEPG/開発/マネジメント
• Java/Python
鈴⽊ 貴典
シニアテクニカルアーキテクト
Acro = 先端を
quest = 探究する
Acroquestのミッション・ビジョン
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
3
テクノロジストチームとして
ビジネスの⾰新的価値創出に挑戦する
ビジョン
Acroquestの創り出す技術で
地球を感動で進化させる
ミッション
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
4
テスト⾃動化における
課題
テスト⾃動化における課題
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
5
• Integration/UIの
テストを作成する
難易度が⾼い
• そもそも
テスト⾃動化エンジニア
がいない
• メンテナンスコストが
⾼い
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
6
⾃動化が必要なのは
分かっている。
でも、
できていない、
挫折してしまう。。。
そういった問題を
どうにかしたい︕
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
7
Karate
Web-Services Testing Made Simple
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
8
Karate
Web-Services Testing Made Simple
Test Automation Made Simple
幅広いテストに対応
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
9
テストダブル
(モック)
APIテスト UIテスト
性能テスト
REST-API
GraphQL
gRPC
WebSocket
ファイル
ブラウザ
Windowsアプリ
Android/iOS
(Appium)
バックエンドのモック化 Gatling連携
Karateによるテスト⾃動化
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
10
• 単⼀のツールで
幅広いテストに対応可能
• DSL(Garkin記法)で
シナリオテストが可能
(Non-Programming)
• 学習コストが低い
GitHub stars of Karate
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
11
2019-11-30
2575 Stars
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
12
①
テスト⾃動化
対応スピードの
向上
②
テスト⾃動化
導⼊プロジェクト
の拡⼤
③
⾃動化範囲が
広くなったこと
による安⼼感
Karateによって私たちが得られたこと
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
13
Karate による
UIテスト
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の指定
画⾯オープン
画⾯⼊⼒
画⾯遷移
結果の確認
画⾯キャプチャ
KarateによるUIテストのメリット
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
15
③テストレポートの
出⼒
①UIテストの
ユニットテスト化
• VS Code プラグインよる
効率的なテスト作成/実⾏
• 単発/連続したシナリオの実⾏
②バックエンドに対する
操作も考慮した
シナリオの構築
• DSLによる直観的なテストケース記述
• JavaやJSの処理を呼び出すことができ、
環境の初期化や非同期処理にも対応可能
• テストレポートの⾃動出⼒
• 画⾯キャプチャの⾃動取得
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
16
実現したかったこと
テストの効率化
=
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
17
実現したかったこと
テストの効率化
プロダクトの品質向上
=
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
18
実現したかったこと
テストの効率化
プロダクトの品質向上
QoLの向上=
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
19
テスト⾃動化が
容易になる
テストの
アジリティが
向上する
エンジニアが
楽になる
プロダクトの
質が向上する
ユーザーも
よろこぶ
⼈々の⼈⽣の質が
向上する
Evolve	the	Earth	with	Emotion	of	Technology
Copyright © Acroquest Technology Co., Ltd. All rights reserved.
20
Quality of Testing
for
Quality of Life
参考
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

Karateによる UI Test Automation 革命

  • 1.
    1Copyright © AcroquestTechnology Co., Ltd. All rights reserved. Karate による UI Test Automation ⾰命 2019/11/30 Acroquest Technology Co., Ltd. 鈴⽊ 貴典
  • 2.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 2 ⾃⼰紹介 n 所属 • Acroquest Technology Co., Ltd. n 主な業務分野 • システムアーキテクト • IoTサービス開発 • ビッグデータ処理プラットフォーム • サーバーレス・アーキテクチャ n バックグラウンド • エンタープライズ/ミッションクリティカル • SEPG/開発/マネジメント • Java/Python 鈴⽊ 貴典 シニアテクニカルアーキテクト Acro = 先端を quest = 探究する
  • 3.
    Acroquestのミッション・ビジョン Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 3 テクノロジストチームとして ビジネスの⾰新的価値創出に挑戦する ビジョン Acroquestの創り出す技術で 地球を感動で進化させる ミッション
  • 4.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 4 テスト⾃動化における 課題
  • 5.
    テスト⾃動化における課題 Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 5 • Integration/UIの テストを作成する 難易度が⾼い • そもそも テスト⾃動化エンジニア がいない • メンテナンスコストが ⾼い
  • 6.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 6 ⾃動化が必要なのは 分かっている。 でも、 できていない、 挫折してしまう。。。 そういった問題を どうにかしたい︕
  • 7.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 7 Karate Web-Services Testing Made Simple
  • 8.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 8 Karate Web-Services Testing Made Simple Test Automation Made Simple
  • 9.
    幅広いテストに対応 Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 9 テストダブル (モック) APIテスト UIテスト 性能テスト REST-API GraphQL gRPC WebSocket ファイル ブラウザ Windowsアプリ Android/iOS (Appium) バックエンドのモック化 Gatling連携
  • 10.
    Karateによるテスト⾃動化 Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 10 • 単⼀のツールで 幅広いテストに対応可能 • DSL(Garkin記法)で シナリオテストが可能 (Non-Programming) • 学習コストが低い
  • 11.
    GitHub stars ofKarate Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11 2019-11-30 2575 Stars
  • 12.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 12 ① テスト⾃動化 対応スピードの 向上 ② テスト⾃動化 導⼊プロジェクト の拡⼤ ③ ⾃動化範囲が 広くなったこと による安⼼感 Karateによって私たちが得られたこと
  • 13.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 13 Karate による UIテスト
  • 14.
    KarateによるUIテストのシナリオ Copyright © AcroquestTechnology 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の指定 画⾯オープン 画⾯⼊⼒ 画⾯遷移 結果の確認 画⾯キャプチャ
  • 15.
    KarateによるUIテストのメリット Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 15 ③テストレポートの 出⼒ ①UIテストの ユニットテスト化 • VS Code プラグインよる 効率的なテスト作成/実⾏ • 単発/連続したシナリオの実⾏ ②バックエンドに対する 操作も考慮した シナリオの構築 • DSLによる直観的なテストケース記述 • JavaやJSの処理を呼び出すことができ、 環境の初期化や非同期処理にも対応可能 • テストレポートの⾃動出⼒ • 画⾯キャプチャの⾃動取得
  • 16.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 16 実現したかったこと テストの効率化 =
  • 17.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 17 実現したかったこと テストの効率化 プロダクトの品質向上 =
  • 18.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 18 実現したかったこと テストの効率化 プロダクトの品質向上 QoLの向上=
  • 19.
    Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 19 テスト⾃動化が 容易になる テストの アジリティが 向上する エンジニアが 楽になる プロダクトの 質が向上する ユーザーも よろこぶ ⼈々の⼈⽣の質が 向上する
  • 20.
    Evolve the Earth with Emotion of Technology Copyright © AcroquestTechnology Co., Ltd. All rights reserved. 20 Quality of Testing for Quality of Life
  • 21.
    参考 Copyright © AcroquestTechnology 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