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,721 views
マイクロサービスにおけるテスト自動化 with Karate
システムテスト自動化カンファレンス2018 マイクロサービスにおけるテスト自動化 with Karate Microservices Test Automation with Karate
Technology
◦
Related topics:
Software Testing Insights
•
Read more
10
Save
Share
Embed
Embed presentation
1
/ 42
2
/ 42
3
/ 42
4
/ 42
5
/ 42
6
/ 42
7
/ 42
8
/ 42
9
/ 42
10
/ 42
11
/ 42
12
/ 42
13
/ 42
14
/ 42
15
/ 42
16
/ 42
17
/ 42
18
/ 42
19
/ 42
20
/ 42
21
/ 42
22
/ 42
23
/ 42
24
/ 42
25
/ 42
26
/ 42
27
/ 42
28
/ 42
29
/ 42
30
/ 42
31
/ 42
32
/ 42
33
/ 42
34
/ 42
35
/ 42
36
/ 42
37
/ 42
38
/ 42
39
/ 42
40
/ 42
41
/ 42
42
/ 42
More Related Content
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
PDF
人生がときめくAPIテスト自動化 with Karate
by
Takanori Suzuki
PDF
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
by
Yusuke Suzuki
PDF
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
PDF
Test Yourself - テストを書くと何がどう変わるか
by
Takuto Wada
PPTX
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
by
Hiroshi Ito
正しいものを正しく作る塾-設計コース
by
増田 亨
人生がときめくAPIテスト自動化 with Karate
by
Takanori Suzuki
見えない壁を越えよう!アジャイルやマイクロサービスを阻む「今までのやり方」 - デブサミ夏2023
by
Yusuke Suzuki
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
「ドメイン駆動設計」の複雑さに立ち向かう
by
増田 亨
Test Yourself - テストを書くと何がどう変わるか
by
Takuto Wada
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
by
Hiroshi Ito
What's hot
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PDF
リクルート式ビッグデータ活用術
by
Recruit Technologies
PDF
ユーザーストーリー駆動開発で行こう。
by
toshihiro ichitani
PDF
アジャイル開発とメトリクス
by
Rakuten Group, Inc.
PDF
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
PPTX
先駆者に学ぶ MLOpsの実際
by
Tetsutaro Watanabe
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
PPTX
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
by
DeNA
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
PDF
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
by
Takahiko Ito
PPTX
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
PDF
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
by
Google Cloud Platform - Japan
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PPTX
Aws amplify studioが変えるフロントエンド開発の未来とは v2
by
Koitabashi Yoshitaka
PDF
例外設計における大罪
by
Takuto Wada
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PPTX
脱RESTful API設計の提案
by
樽八 仲川
PPTX
Istioサービスメッシュ入門
by
Yoichi Kawasaki
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
リクルート式ビッグデータ活用術
by
Recruit Technologies
ユーザーストーリー駆動開発で行こう。
by
toshihiro ichitani
アジャイル開発とメトリクス
by
Rakuten Group, Inc.
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
先駆者に学ぶ MLOpsの実際
by
Tetsutaro Watanabe
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
by
DeNA
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
by
Takahiko Ito
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
ソフトウェア開発のやり方の改善
by
増田 亨
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
by
Google Cloud Platform - Japan
ドメイン駆動設計 本格入門
by
増田 亨
Aws amplify studioが変えるフロントエンド開発の未来とは v2
by
Koitabashi Yoshitaka
例外設計における大罪
by
Takuto Wada
マイクロにしすぎた結果がこれだよ!
by
mosa siru
脱RESTful API設計の提案
by
樽八 仲川
Istioサービスメッシュ入門
by
Yoichi Kawasaki
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
Similar to マイクロサービスにおけるテスト自動化 with Karate
PDF
Karateによる UI Test Automation 革命
by
Takanori Suzuki
PDF
【17-B-6】RIAの性能テストとアプリケーション品質向上のための管理手法
by
Developers Summit
PDF
ワンクリックデプロイ101 #ocdeploy
by
Ryutaro YOSHIBA
PDF
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
PDF
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
by
Tomoharu ASAMI
PDF
Agileツール適合化分科会(テスト自動化ツール)
by
masanori kataoka
PDF
SGT2013 技術トークス「アジャイルテスティング」
by
yasuohosotani
PDF
ケーススタディ/テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第47回】
by
Tomoharu ASAMI
KEY
テストとの上手な付き合い方
by
Akira Suenami
PPTX
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
by
Hideki Sugimoto
PDF
異業種でのテスト自動化の実際
by
Satsuki Urayama
PPTX
事例からわかる!テスト自動化導入パターン
by
友隆 浅黄
PPTX
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
by
Nao Oec
PDF
はこだてIKA 第4回勉強会 単体テスト
by
Seiji KOMATSU
PDF
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
PDF
継続的8章
by
shinjiyoshida
PDF
ソフトウェアテストのアウトソーシングサービスにおける紹介資料_バルテス株式会社.pdf
by
shunsukekosaka
PDF
java-ja TDD 2nd
by
Takuto Wada
KEY
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
by
Shuji Watanabe
PDF
ゼロから始めたE2Eテスト
by
ushiboy
Karateによる UI Test Automation 革命
by
Takanori Suzuki
【17-B-6】RIAの性能テストとアプリケーション品質向上のための管理手法
by
Developers Summit
ワンクリックデプロイ101 #ocdeploy
by
Ryutaro YOSHIBA
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
by
Tomoharu ASAMI
Agileツール適合化分科会(テスト自動化ツール)
by
masanori kataoka
SGT2013 技術トークス「アジャイルテスティング」
by
yasuohosotani
ケーススタディ/テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第47回】
by
Tomoharu ASAMI
テストとの上手な付き合い方
by
Akira Suenami
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
by
Hideki Sugimoto
異業種でのテスト自動化の実際
by
Satsuki Urayama
事例からわかる!テスト自動化導入パターン
by
友隆 浅黄
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
by
Nao Oec
はこだてIKA 第4回勉強会 単体テスト
by
Seiji KOMATSU
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
継続的8章
by
shinjiyoshida
ソフトウェアテストのアウトソーシングサービスにおける紹介資料_バルテス株式会社.pdf
by
shunsukekosaka
java-ja TDD 2nd
by
Takuto Wada
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
by
Shuji Watanabe
ゼロから始めたE2Eテスト
by
ushiboy
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
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
マイクロサービスにおけるテスト自動化 with Karate
1.
1Copyright © Acroquest
Technology Co., Ltd. All rights reserved. マイクロサービスにおけるテスト自動化 with Karate 2018/12/08 Acroquest Technology Co., Ltd. 鈴木 貴典 システムテスト自動化カンファレンス 2018
2.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 2 自己紹介 ◼ 所属 • Acroquest Technology Co., Ltd. ◼ 主な業務分野 • システムアーキテクト • IoTサービス開発 • ビッグデータ処理プラットフォーム • サーバーレス・アーキテクチャ ◼ バックグラウンド • エンタープライズ/ミッションクリティカル • SEPG/開発/マネジメント • Java/Python 鈴木 貴典 シニアテクニカルアーキテクト Acro = 先端を quest = 探究する
3.
Acroquestのミッション・ビジョン Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 3 テクノロジストチームとして ビジネスの革新的価値創出に挑戦する ビジョン Acroquestの創り出す技術で 地球を感動で進化させる ミッション
4.
「働きがいのある会社(GPTW)」 ランキング(従業員25~99人部門) 1位 を 3回
受賞 1位 1位 1位
5.
はじめに Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 5 ○:マイクロサービス × :マイクロサービシズ ○:Microservices × :Microservice システムアーキテクチャのひとつで、ソフトウェアアプリケーションを独立して 配置可能な小さなサービスとして開発し、それらを組み合わせて、ひとつの システムを実現する手法。もしくは、そうして開発されたシステム自体のこと。
6.
アジェンダ Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 6 ① What is Karate? ② なぜ Karate を導入することに至ったか? ③ Karateを採用したポイント ④ Karate の高い利便性
7.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 7 What is Karate?
8.
空手?
9.
出典:BABYMETAL - KARATE
(OFFICIAL) - YouTube KARATE?
10.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 10 Karate Web-Services Testing Made Simple.
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.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 13 なぜ Karate を 導入することに至ったか?
14.
世の中は API-First の時代へ Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 14 • マルチデバイス対応への ニーズ増加 • バックエンド側は、 REST-APIで呼び出す アーキテクチャが 当たり前になってきた
15.
世の中は API-First の時代へ Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 15 • マイクロサービス アーキテクチャ採用増加 • システム間連携も REST-APIで実現 • API自体が サービスの仕様であり 重要性が高まってきた
16.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 16 マイクロサービスは 開発も大変だが、テストも大変 出典:A Netflix Guide to Microservices
17.
課題だったこと Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 17 テストは自動化もしてパスしていたのに シナリオテストしたら、エラーが多発 サービスの依存関係が多く テストを自動化するのが困難 テストエンジニアが テスト自動化するのは結構大変
18.
課題だったこと(①APIのシナリオテスト) Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 18 ○:API単体の テストはPASS テスト対象 サービス A ×:シナリオで 実行するとERROR テスト対象 サービス A B
19.
課題だったこと(②サービスの依存関係) Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 19 テスト対象 サービス これは簡単 テスト対象 サービス サービスA サービスB サービスC 実際はこうなる(大変)
20.
課題だったこと(③テスト自動化エンジニア不足) Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 20 テストスキルも 開発スキルも ある人ってそうは いないですよね?
21.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 21 APIの整合性を保つのって、 大変!
22.
Karateを知ったキッカケ Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 22
23.
Karateを採用したポイント Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 23 ③学習コストが低い • 直観的なテストケース記述 • テスト実行/エラー 確認の容易性 • 新人でもハマらず導入 ①シナリオテストが可能 • 連続したテストケース • APIの応答値の利用 ②DSLで記述できる • プログラマでなくても 作成できる • データとテストの分離
24.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 24 Karate の高い利便性
25.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 25 HTTP関連の 標準対応 負荷テスト との連携 シンプルな テストケース 記述 テスト ダブル End-to-End テスト プログラミング 言語拡張
26.
①シンプルなテストケース記述 ~シナリオの基本構成~ Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 26 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 であることをテスト レスポンスの内容をテスト
27.
①シンプルなテストケース記述 ~テスト実行結果レポート~ Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 27 ステップごとに 実行結果が分かる 実行時のデータの 内容も分かる
28.
①シンプルなテストケース記述 ~データ記述~ Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 28 # 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開発者が うれしいヤツ 一目で 分かりやすい
29.
①シンプルなテストケース記述 ~Fuzzy Matching~ Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 29 # 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'} パラメータの有無判定 パラメータの型判定
30.
②HTTP関連の標準対応 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 30 対象 コマンド 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
31.
③プログラミング言語拡張 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 31 * def greeter = function(name){ return 'hello ' + name } * assert greeter('Bob') == 'hello Bob' JavaScript が使える! 何か複雑な処理や判定が必要になる場合でも 独自関数で対応することが可能になる
32.
③プログラミング言語拡張 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 32 * 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 のクラスも実行できる! プロダクトコード/テストコードのクラスなども テストで使うことができ、効率が上がる
33.
④テストダブル Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 33 テスト対象 サービス 依存関係 サービス 自動化したいけど、よくある面倒なパターン テスト対象のAPI これをどうするか?
34.
④テストダブル Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 34 テスト対象 サービス 解決できます。そう、Karateならね。 テスト対象のAPI こうできるんです! (テストダブル)
35.
④テストダブル Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 35 @ignore Feature: 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シナリオ
36.
④テストダブル Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 36 Cunsumer: APIを呼び出す側 Provider: APIを呼び出される側 Karateが、これらの代替、 もしくは、間に入って、 実行することができる
37.
⑤負荷テスト連携 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 37 Karate Gatling Gatlingと連携して 負荷テストの実行ができる Karateの シナリオファイルを 再利用可能
38.
⑥E2E(End-to-End)テストでの利用 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 38 https://twitter.com/ptrthomas/status/1046459965668388866 WebDriverを 利用しての ブラウザ実行も可能 (Se○○nium!?) シナリオを Karateの形式で記述 v0.9.0 New
39.
さらに・・・ Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 39 ①REST-API/JSON 以外にも対応 • GraphQL • gRPC • WebSocket • バイナリリクエスト/レスポンス ②Karate UI • GUIで、ステップ実行/デバッグ可能 ③JUnit5サポート ④Dynamic Scenario Outline v0.9.0 New
40.
Karateによるテスト自動化の変化 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 40 色々なツールを組み合わせて 使いこなす 単一のツールで 幅広く対応
41.
Evolve the Earth
with Emotion of Technology Copyright © Acroquest Technology Co., Ltd. All rights reserved. 41 Karate で あたなのテストも 楽 できるのでは?
42.
Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 42 一緒に先端を追及する仲間を募集しています!