OSS探訪

Gherkin風DSLでAPI test・mock server・performance testを一つのframeworkへまとめる

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,972
主要言語
Java
ライセンス
MIT
リポジトリ最終更新
2026/09/27
ページ内ナビ

概要

KarateはAPI testing、mocking、performance testingを統合したtest automation frameworkです。JSON/XML assertionを含むGherkin風DSLでscenarioを記述し、v2ではJava 21+とJUnit 6 integrationを基盤にparallelなtest executionを行えます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

HTTP requestとJSON/XML assertionをGherkin風DSLで記述する

Feature/Scenario形式でURL、request、HTTP method、status、response match等を記述し、API testの入力とassertionを一つのfeature fileへまとめられます。

出典:[3]

mock serverとperformance testを同じtoolchainで扱う

v2はbuilt-in HTTP serverによるAPI mockingとperformance testingを主要機能として掲げ、functional testからload testへ同じscenario資産を展開できます。

出典:[3]

向いている用途

API contract・integration testとmockを同じDSLで管理したい場合に向く

microserviceやexternal APIとのintegrationをfeature fileへ集約し、mockとfunctional/performance testを同じframeworkで扱いたいteamに向きます。

出典:[2][3]

導入前の確認

v2.1.3はJava 21以上とJUnit 6系を前提にする

v2.1.3のPOMはJava release 21、JUnit 6.1.3を基準にし、karate-junit6 artifactを提供します。既存v1/JUnit5 projectではruntimeとtest runnerの移行を確認します。

出典:[4][5]

v1のbrowser automationはv2ではまだ対象外

README_V2はv1がweb-browser automationをsupportしていた一方、v2には将来追加予定と明記しています。UI automation目的ではv2の現状機能を前提に採用しないよう注意します。

出典:[3]

参考にした公式資料

  1. [1]karatelabs/karate repository(2026-09-30)
  2. [2]Karate README(2026-09-30)
  3. [3]Karate v2 README(2026-09-30)
  4. [4]Karate v2.1.3 parent POM(2026-09-30)
  5. [5]Karate v2.1.3 JUnit 6 POM(2026-09-30)
  6. [6]Karate v2.1.3 release(2026-09-30)
  7. [7]Karate MIT license(2026-09-30)
編集部からの補足

Karate 2.1.3はv2系の安定版で、API test・mock server・performance testを統合します。v2はJava 21+とJUnit 6 integrationを前提にし、v1にあったweb-browser automationはREADME_V2で『将来追加予定』とされているため、現時点ではAPI中心のtest automationとして評価するのが適切です。

3ステップで試す

  1. 1

    Karate JUnit 6 2.1.3を追加

    Java 21以上のMaven projectへv2のJUnit 6 integrationをtest dependencyとして追加します。

    <dependency><groupId>io.karatelabs</groupId><artifactId>karate-junit6</artifactId><version>2.1.3</version><scope>test</scope></dependency>
  2. 2

    API scenarioをfeature fileへ記述

    まずHTTP requestとstatus assertionだけの最小scenarioを作ります。

    Feature: API Scenario: health Given url "https://example.com" When method get Then status 200
  3. 3

    JUnit 6からfeatureを実行

    featureと同じpackageにrunnerを置き、mvn testで実行します。

    @Karate.Test Iterable<DynamicNode> testApi() { return Karate.run("api").relativeTo(getClass()); }
公式READMEで確認

成長

成長の推移 · 直近30日

8,972 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • api-testing
  • assertions
  • automated-testing
  • automation
  • bdd
  • contract-testing
  • cucumber
  • developer-tools
  • load-testing
  • microservices
  • mock-server
  • test-automation
Stars
8,972
Forks
2,045
Watchers
218
Open Issues
0
所有者種別
Organization
主要言語
Java
ライセンス
MIT
リポジトリ最終更新
2026/09/27

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?