Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Takanori Suzuki
9,987 views
人生がときめくAPIテスト自動化 with Karate
Acroquest Technology LTxRT 人生がときめくAPIテスト自動化 with Karate Sparking Joy for API Testing Automation
Technology
◦
Related topics:
Software Testing Insights
•
Read more
3
Save
Share
Embed
Embed presentation
1
/ 35
2
/ 35
3
/ 35
4
/ 35
5
/ 35
6
/ 35
7
/ 35
8
/ 35
9
/ 35
10
/ 35
11
/ 35
12
/ 35
13
/ 35
14
/ 35
15
/ 35
16
/ 35
17
/ 35
18
/ 35
19
/ 35
20
/ 35
21
/ 35
22
/ 35
23
/ 35
24
/ 35
25
/ 35
26
/ 35
Most read
27
/ 35
28
/ 35
29
/ 35
Most read
30
/ 35
31
/ 35
32
/ 35
33
/ 35
34
/ 35
Most read
35
/ 35
More Related Content
PDF
DockerとPodmanの比較
by
Akihiro Suda
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
by
Preferred Networks
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
DockerとPodmanの比較
by
Akihiro Suda
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
by
Preferred Networks
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
マイクロにしすぎた結果がこれだよ!
by
mosa siru
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
What's hot
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
PDF
Dockerfileを改善するためのBest Practice 2019年版
by
Masahito Zembutsu
PDF
マイクロサービスにおけるテスト自動化 with Karate
by
Takanori Suzuki
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PPTX
Python製BDDツールで自動化してみた
by
KeijiUehata1
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
PPTX
Docker Tokyo
by
cyberblack28 Ichikawa
PDF
SolrとElasticsearchを比べてみよう
by
Shinsuke Sugaya
PDF
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
by
Daichi Koike
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
PPTX
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
by
NTT DATA Technology & Innovation
PDF
今さらだけどMySQLとライセンス
by
Hidenori Ishii
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
Dockerfileを改善するためのBest Practice 2019年版
by
Masahito Zembutsu
マイクロサービスにおけるテスト自動化 with Karate
by
Takanori Suzuki
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
マイクロサービス 4つの分割アプローチ
by
増田 亨
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
Python製BDDツールで自動化してみた
by
KeijiUehata1
Redisの特徴と活用方法について
by
Yuji Otani
Docker Tokyo
by
cyberblack28 Ichikawa
SolrとElasticsearchを比べてみよう
by
Shinsuke Sugaya
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
by
Daichi Koike
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
by
NTT DATA Technology & Innovation
今さらだけどMySQLとライセンス
by
Hidenori Ishii
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
Similar to 人生がときめくAPIテスト自動化 with Karate
PDF
Karateによる UI Test Automation 革命
by
Takanori Suzuki
PDF
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
PDF
Agileツール適合化分科会(テスト自動化ツール)
by
masanori kataoka
PDF
ゼロから始めたE2Eテスト
by
ushiboy
PDF
Agileツール適合化分科会(tddとbdd)
by
masanori kataoka
PPTX
Robotium を使った UI テスト
by
Kenichi Tatsuhama
PDF
継続的8章
by
shinjiyoshida
PPTX
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
by
Nao Oec
PPTX
事例からわかる!テスト自動化導入パターン
by
友隆 浅黄
PDF
Tokyor14 - R言語でユニットテスト
by
Yohei Sato
PDF
【17-B-6】RIAの性能テストとアプリケーション品質向上のための管理手法
by
Developers Summit
PDF
SGT2013 技術トークス「アジャイルテスティング」
by
yasuohosotani
PDF
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
PDF
はこだてIKA 第4回勉強会 単体テスト
by
Seiji KOMATSU
PDF
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
PDF
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
by
Tomoharu ASAMI
PDF
Kotest を使って 快適にテストを書こう - KotlinFest 2024
by
Hirotaka Kawata
PDF
異業種でのテスト自動化の実際
by
Satsuki Urayama
PPTX
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
by
Taichi Watanabe
PDF
Awsで実現するseleniumテスト高速術
by
finoue
Karateによる UI Test Automation 革命
by
Takanori Suzuki
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
Agileツール適合化分科会(テスト自動化ツール)
by
masanori kataoka
ゼロから始めたE2Eテスト
by
ushiboy
Agileツール適合化分科会(tddとbdd)
by
masanori kataoka
Robotium を使った UI テスト
by
Kenichi Tatsuhama
継続的8章
by
shinjiyoshida
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
by
Nao Oec
事例からわかる!テスト自動化導入パターン
by
友隆 浅黄
Tokyor14 - R言語でユニットテスト
by
Yohei Sato
【17-B-6】RIAの性能テストとアプリケーション品質向上のための管理手法
by
Developers Summit
SGT2013 技術トークス「アジャイルテスティング」
by
yasuohosotani
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
はこだてIKA 第4回勉強会 単体テスト
by
Seiji KOMATSU
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
by
Tomoharu ASAMI
Kotest を使って 快適にテストを書こう - KotlinFest 2024
by
Hirotaka Kawata
異業種でのテスト自動化の実際
by
Satsuki Urayama
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
by
Taichi Watanabe
Awsで実現するseleniumテスト高速術
by
finoue
More from Takanori Suzuki
PDF
SORACOM S+Cameraを利用して在庫チェックをやってみた
by
Takanori Suzuki
PDF
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
by
Takanori Suzuki
PDF
IoT時代におけるストリームデータ処理と急成長の Apache Flink
by
Takanori Suzuki
PDF
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
by
Takanori Suzuki
PDF
SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出
by
Takanori Suzuki
DOC
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
by
Takanori Suzuki
DOC
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
by
Takanori Suzuki
PDF
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
by
Takanori Suzuki
SORACOM S+Cameraを利用して在庫チェックをやってみた
by
Takanori Suzuki
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
by
Takanori Suzuki
IoT時代におけるストリームデータ処理と急成長の Apache Flink
by
Takanori Suzuki
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
by
Takanori Suzuki
SQiP2012 - 質問表の活用によるプロジェクトの早期リスク検出
by
Takanori Suzuki
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
by
Takanori Suzuki
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
by
Takanori Suzuki
5WCSQ - Quality Improvement by the Real-Time Detection of the Problems
by
Takanori Suzuki
Recently uploaded
PDF
第25回FA設備技術勉強会_自宅で勉強するROS・フィジカルAIアイテム.pdf
by
TomohiroKusu
PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
安価な ロジック・アナライザを アナライズ(?),Analyze report of some cheap logic analyzers
by
たけおか しょうぞう
PPTX
DrupalCon Nara 2025の記録 .
by
iPride Co., Ltd.
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):東京大学情報基盤センター テーマ1/2/3「Society5.0の実現を目指す『計算・データ・学習...
by
PC Cluster Consortium
PDF
visionOS TC「新しいマイホームで過ごすApple Vision Proとの新生活」
by
Sugiyama Yugo
第25回FA設備技術勉強会_自宅で勉強するROS・フィジカルAIアイテム.pdf
by
TomohiroKusu
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
by
NTT DATA Technology & Innovation
安価な ロジック・アナライザを アナライズ(?),Analyze report of some cheap logic analyzers
by
たけおか しょうぞう
DrupalCon Nara 2025の記録 .
by
iPride Co., Ltd.
PCCC25(設立25年記念PCクラスタシンポジウム):東京大学情報基盤センター テーマ1/2/3「Society5.0の実現を目指す『計算・データ・学習...
by
PC Cluster Consortium
visionOS TC「新しいマイホームで過ごすApple Vision Proとの新生活」
by
Sugiyama Yugo
人生がときめくAPIテスト自動化 with Karate
1.
1Copyright © Acroquest
Technology Co., Ltd. All rights reserved. ⼈⽣がときめくAPIテスト⾃動化 with Karate ~ Sparking Joy for API Testing Automation ~ 2019/05/16 Acroquest Technology Co., Ltd. 鈴⽊ 貴典
2.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 2 ⾃⼰紹介 n 所属 • Acroquest Technology Co., Ltd. n 主な業務分野 • システムアーキテクト • IoTサービス開発 • ビッグデータ処理プラットフォーム • サーバーレス・アーキテクチャ n バックグラウンド • エンタープライズ/ミッションクリティカル • SEPG/開発/マネジメント • Java/Python 鈴⽊ 貴典 シニアテクニカルアーキテクト Acro = 先端を quest = 探究する
3.
アジェンダ Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 3 ① テスト⾃動化における課題 ② What is Karate︖ ③ Karate によるAPIテストの実施
4.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 4 テスト⾃動化における 課題
5.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 5 ⾃動化したくてもなかなかできていない もしくは コストがかかり過ぎている 本内容の ターゲット
6.
⾃動化をしたくても、できない主な要因 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 6 No 要因 説明 1 Integration/UIの テストを作成する 難易度が⾼い • API単体ではなく、シナリオを構成することが必要 になる。 • E2E(End-to-End)や、複数サービスの連携を⾃ 動化するのは、環境(DBやファイルリソースな ど)などの連携やモック化も必要で、複雑になる。 • 複数のツールなどを組み合わせたり、⾃作するこ とが必要となる。 2 そもそも、テスト ⾃動化エンジニアがいない • テストシナリオも設計できて、それを⾃動化でき るテストエンジニアは少ない。 3 メンテナンスコストが ⾼い • 連携するコンポーネントの内、どこかが変わった ら、シナリオを変更する必要が出てくる。 • UIの変更に追随するのが⼤変で、⾃動化途中で挫 折してしまう。
7.
世の中は API-First の時代へ Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 7 • マルチデバイス対応への ニーズ増加 • バックエンド側は、 REST-APIで呼び出す アーキテクチャが 当たり前になってきた
8.
世の中は API-First の時代へ Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 8 • マイクロサービス アーキテクチャ採⽤増加 • システム間連携も REST-APIで実現 • API⾃体が サービスの仕様であり 重要性が⾼まってきた
9.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 9 ⾃動化が必要なのは 分かっている。 でも、 できていない、 挫折してしまう。。。 そういった問題を どうにかしたい︕
10.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 10 What is Karate?
11.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 11 Karate Web-Services Testing Made Simple. • WebサービスAPIのテストを⾃動化する オープンソースのテストフレームワーク • BDD(Behavior Driven Development)に 属するもので、シナリオテストが可能 • Cucumberを元にしており、JavaVM上で 実⾏できるようにしたもの (v0.9より、Cucmber依存はなくなっている) • Garkin記法で、テストシナリオを記述
12.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 12 Karate テストシナリオ
13.
Karate の強み Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 13 ③テストに必要な内容に 幅広く対応できる ①シナリオテストが可能 • 連続した処理のテストが可能で、API単発 ではなく、シナリオテストが実施ができる • JavaやJSと連携でき、関数の利⽤が可能で、 環境の初期化や⾮同期処理にも対応できる • シナリオの再利⽤などもでき、応⽤範囲が広い ②学習コストが低い • DSLによる直観的なテストケース記述 • テスト実⾏/エラー確認の容易性 • プログラマでなくても作成できる • 新⼈でもハマらず導⼊できた • テストダブル(モック)、性能テスト、UIテスト などにも対応 • REST-APIだけでく、ファイルアップロード、 GraphQL、gRPC、WebSocket などにも対応
14.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 14 HTTP関連の 標準対応 負荷テスト との連携 シンプルな テストケース 記述 テスト ダブル End-to-End テスト プログラミング ⾔語拡張
15.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 15 ThoughtWorks Technology Radar GitHub Stars https://star-history.t9t.io/#intuit/karate https://www.thoughtworks.com/radar/languages-and-frameworks/karate 右肩上がりで 増加中 ASSESSレベルに 登場
16.
Karate vs REST-assured Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 16 No ⽐較ポイント Karate REST-assured 1 Plain Text × (要コンパイル) 2 Parallel Execution △ (Partial) 3 Data Driven Testing (built-in) × (要 TestNG etc.) 4 Environment Switching(Profile) (built-in) × 5 Match full payload in one step × 6 Update JSON payload / object × https://www.slideshare.net/intuit_india/karate-for-complex-webservice-api-testing-by-peter-thomas
17.
Karate vs Cucumber Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 17 No ⽐較ポイント Karate Cucumber 1 Step Definitions built-in, no Java code needed × 2 Re-Use Feature files from other Features × 3 Dynamic Data-Driven Testing × 4 Parallel Test Execution and Reporting × 5 Option to run routines only once per Feature × https://www.slideshare.net/intuit_india/karate-for-complex-webservice-api-testing-by-peter-thomas
18.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 18 Karate による APIテストの実施
19.
Karateの主な機能 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 19 No 機能 概要 ① シンプルなテストケース記述 • シナリオ記述 • テスト実⾏結果の確認 • 効率の良いデータ指定/記述 • Fuzzy Matching/Assertion ② HTTP関連の標準対応 • HTTPに対応した組み込み パラメータの活⽤ ③ プログラミング⾔語拡張 • JavaScriptの関数の利⽤ • Javaコードの呼び出し ④ テストダブル • サーバー側のモック化 ※SAPでのフロントエンド開発時に、 バックエンドのモックにも利⽤できる。 ⑤ 負荷テスト連携 • Gatlingとの連係 ⑥ UIテスト • KarateDriver(WebDriver)による UI操作⾃動化/キャプチャ
20.
①シンプルなテストケース記述 〜シナリオの基本構成〜 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 20 Feature: sample karate test script Background: * url 'https://jsonplaceholder.typicode.com' Scenario: get all users and then get the first user by id Given path 'users' When method get Then status 200 And assert response.size() === 10 And assert response[0].id == 1 And match response[0] contains { id: 1, name: "Leanne Graham" } https://jsonplaceholder.typicode.com/users に対して GETメソッド でコールして HTTPステータス 200 であることをテスト レスポンスの内容をテスト
21.
①シンプルなテストケース記述 〜テスト実⾏結果レポート〜 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 21 ステップごとに 実⾏結果が分かる 実⾏時のデータの 内容も分かる
22.
①シンプルなテストケース記述 〜データ記述〜 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 22 # MultilineでのJSON指定 * def jsonData = """ [ {name: 'Bob‘, age: 2}, {name: 'Wild', age: 4}, {name: 'Nyan', age: 3} ] """ * match jsonData == [ {name:'Bob', age:2}, {name:'Wild', age:4}, {name:'Nyan', age:3}] # table指定 * table jsonAsTable | name | age | | 'Bob' | 2 | | 'Wild' | 4 | | 'Nyan' | 3 | * match jsonAsTable == [ {name:'Bob', age:2}, {name:'Wild', age:4}, {name:'Nyan', age:3}] Java開発者が うれしいヤツ ⼀⽬で 分かりやすい
23.
①シンプルなテストケース記述 〜Fuzzy Matching〜 Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 23 # present / notpresent * def test = {id: '001’, name: 'Bob'} * match test == {id: '001’, name: '#present’, age: '#notpresent'} # number * def test = {foo: 1} * match test == {foo: '#number'} # string * def test = {foo: 'test'} * match test == {foo: '#string'} # boolean * def test = {foo: true} * match test == {foo: '#boolean'} パラメータの有無判定 パラメータの型判定
24.
②HTTP関連の標準対応 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 24 対象 コマンド HTTP url Path method status Request param header cookie form multipart Response responseStatus responseHeaders responseCookies responseTime responseTimeStamp responseBytes HTTP(REST)のテストで 必要となる要素には ほとんど標準で対応している テストケース作成の効率が良い︕ * header Authorization = ‘xxxxxxxxxx’ Given path 'headers', token
25.
③プログラミング⾔語拡張 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 25 * def greeter = function(name){ return 'hello ' + name } * assert greeter('Bob') == 'hello Bob' JavaScript が使える︕ 何か複雑な処理や判定が必要になる場合でも 独⾃関数で対応することが可能になる
26.
③プログラミング⾔語拡張 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 26 * def dateStringToLong = """ function(s) { var SimpleDateFormat = Java.type('java.text.SimpleDateFormat'); var sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); return sdf.parse(s).time; } """ * assert dateStringToLong("2016-12-24T03:39:21.081+0000") == 1482550761081 Java のクラスも実⾏できる︕ プロダクトコード/テストコードのクラスなども テストで使うことができ、効率が上がる
27.
④テストダブル Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 27 テスト対象 サービス 依存関係 サービス ⾃動化したいけど、よくある⾯倒なパターン テスト対象のAPI これをどうするか︖
28.
④テストダブル Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 28 テスト対象 サービス 解決できます。そう、Karateならね。 テスト対象のAPI こうできるんです︕ (テストダブル)
29.
④テストダブル Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 29 Feature: Test-Double Background: * def uuid = function(){ return java.util.UUID.randomUUID() + '' } Scenario: pathMatches('/v1/cats') * def responseStatus = 201 * def response = { id: '#(uuid())', name: 'Billie' } Scenario: pathMatches('/v1/cats/{uuid}') * def response = { id: '#(uuid())', name: 'Billie' } Scenario: pathMatches('/v1/dogs') * def responseStatus = 201 * def response = { id: '#(uuid())', name: 'Dummy' } Scenario: pathMatches('/v1/dogs/{uuid}') * def response = { id: '#(uuid())', name: 'Dummy' } テストダブルとして動作させる場合のKarateシナリオ
30.
⑤負荷テスト連携 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 30 Karate Gatling Gatlingと連携して 負荷テストの実⾏ができる Karateの シナリオファイルを 再利⽤可能
31.
⑥UIテスト Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 31 https://twitter.com/ptrthomas/status/1046459965668388866 KarateDriver を 利⽤しての ブラウザ実⾏も可能
32.
⑥UIテスト Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 32 Feature: browser automation Background: * configure driver = { type: 'chrome' } # * configure driver = { type: 'chromedriver' } # * configure driver = { type: 'geckodriver' } # * configure driver = { type: 'safaridriver' } # * configure driver = { type: 'mswebdriver' } Scenario: Google search Given driver 'https://google.com’ And driver.input("input[name=q]", 'karate dsl') When driver.submit("input[name=btnI]") Then match driver.location == 'https://github.com/intuit/karate' * def bytes = driver.screenshot() * eval karate.embed(bytes, 'image/png') KarateDriverを利⽤したUIテスト
33.
Karateによるテスト⾃動化の効率化 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 33 ⾊々なツールを組み合わせて 使いこなす 単⼀のツールで 幅広く対応
34.
参考 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 34 1. Karate for Complex Web-Service API Testing (Peter Thomas) • https://www.slideshare.net/intuit_india/karate-for-complex-webservice-api-testing-by-peter-thomas 2. Karate - Web-Service API Testing Made Simple (Peter Thomas) • https://www.slideshare.net/VodqaBLR/karate-webservice-api-testing-made-simple 3. Karate: RESTful Testing (SreeCharan Shroff) • https://www.youtube.com/watch?v=LJJmSXJJTaY 4. Webinar on Micro-services Testing With Karate | HackerEarth Webinar • https://www.youtube.com/watch?v=YWK4J3lhFw4 5. マイクロサービスにおけるテスト⾃動化 with Karate (Takanori Suzuki) • https://www.slideshare.net/takanorig/microservices-test-automation-with-karate/
35.
Evolve the Earth with Emotion of Technology Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 35 Sparking Joy for API Testing Automation with Karate !