>JavaAPIのテスト自動化ツール「Karate」を使ってみる2020年7月11日APIメインのシステムでE2E(エンドツーエンド)テストをするにあたり、なにかいいツールはないかなと探していたら見つけました。その名も、「Karate」。押忍!目次KarateとはKarateは、APIテストの自動化、モック、パフォーマンステスト、さらにはUI自動化を単一の統合フレームワークに組み合わせる唯一のオープンソースツールです。Cucumberによって一般化されたBDD構文は言語に依存せず、プログラマー以外でも簡単に使用できます。強力なJSONおよびXMLアサーションが組み込まれており、テストを並行して実行して速度を上げることができます。KarateSeleniumやCypress、NightwatchなどのUIテストツールに対して、KarateはAPIテストに特化しています。APIだけでなく、UIテストにも対応しているようですね。KarateをさわってみるKarateのREADME.mdにしたがって動かしてみます。環境は以下のとおりです。Karate入りのMavenプロジェクトを作成します。Gradleプロジェクトの場合、こちらのbuild.gradleが参考になります。作成されたプロジェクトは以下のようなディレクトリ構成になっています。ポイントは、src/test/java配下にリソースファイルを配備することです。一般的にMavenやGradleプロジェクトでは、テストに利用するリソースファイル(上でいうと、.jsや.xml)はsrc/test/resources配下に置くのですが、Karateではsrc/test/java配下に配備することを推奨しています。これにより、Karate以外のテストで利用するファイルとごちゃまぜにならないように管理できます。pom.xmlにsrc/test/java配下にリソースファイルを配備する設定が書かれています。シナリオの書き方を見てみます。Karateでは、.featureにシナリオを書きます。サンプルとしてすでにusers.featureにシナリオが書かれています。Karateを使ったことがなくても、ぱっと見てなんとなくわかる記述なのがいいですね。具体的には以下のテストシナリオが書かれています。https://jsonplaceholder.typicode.com/usersにGETでアクセスしたときに、ステータスコードが200であることレスポンスボディをもとに(id=1)、https://jsonplaceholder.typicode.com/users/1にGETでアクセスしたときに、ステータスが200であることAPIを呼び出す際、前回のAPI呼び出しの結果を利用できるのがいいですね。記述も簡潔でわかりやすいです。最後に、テストを動かしてみます。ログも全部載せておきます。レポートも出力してくれます。まとめAPIのテスト自動化ツール「Karate」を使ってみました。環境構築が簡単で、学習コストも低そうです。この機会にKarateに入門します。BootでGradleを使ってJUnit5のテストを実行しようとしたのですが、なぜかテストがスキップされる。そんなときの対処法をメモしておきます。...Mockitoでメソッドの呼び出し回数によって異なる結果を返す方法Mockitoでメソッドの呼び出し回数によって異なる結果を返す方法をメモしておきます。...【Mac】Gradleのインストール手順Homebrewを使えば以下のコマンド1行でインストールできます。「Homebrewって何?」という方は、Homebrewのインストール方法や使い方の記事をご覧ください。...CentOS7にOpenJDK11をインストールする方法CentOS7にOpenJDK11をインストールする方法をメモしておきます。...PREVMacのターミナル終了時にコマンド履歴が消えるときの対処法NEXTHerokuで環境変数を確認・設定・削除する方法プロフィールdonchan技術を磨きたくてSIerからWeb業界に転職したエンジニア。技術メモを書いています。