WebAPIテストフレームワーク選定

Contents

比較対象

JSONを扱うWeb APIのテストを行いたい。

CIツールを利用した自動テストを行いたいので、サーバで実行できるものがよい。

テストフレームワークで使用するプログラミング言語は問わない。

画面は無いので、画面のテストは不要である。

 

Mocha

https://mochajs.org/

Node.js、ブラウザで使用できるJavaScript用テストフレームワーク。Web API用ではない。

 

Cucumber

https://cucumber.io/

ブラウザで表示するようなWeb画面用のテストフレームワーク。自然言語に近いテストケースを記述可能。

 

assertible

https://assertible.com/

有料のSaaS型テストフレームワーク。制限付きで無料でも使用できる。

実態はデスクトップツールに近い。

コード不要でGUIでテストケースを作成可能。

 

Restfuse

https://github.com/eclipsesource/restfuse

2019年7月30日時点 最新版:1.1.1 (2012/9/10)

WebAPIテストフレームワーク。

主にアノテーションを使用したJavaコードベースのテストシナリオを記述する。

テストデータはテキストファイルに切り出してアノテーションで指定する、結果の処理方法をJavaコードで記述するといった使い方をする。

 

REST-assured

http://rest-assured.io/

2019年7月30日時点 最新版:4.0.0 (2019/5/10)

WebAPIテストフレームワーク。

Javaコードベースのテストシナリオを記述する。例:https://github.com/rest-assured/rest-assured/wiki/Usage

ただし、JSONスキーマのテストでは、外部のスキーマ定義ファイルを利用できる。

 

Karate

https://github.com/intuit/karate

2019年7月30日時点 最新版:0.9.4 (2019/7/6) ※2017/2/12に初版(0.1.2)リリース

JSONを標準としたWebAPIテストフレームワーク。

APIを連結したモック機能がある(テストダブル)。

テストケースはGherkin形式で記述するのでビルド不要。

JVMで動作する。テストケース中でJavaコードを実行可能。

Gatlingと連携して負荷試験も可能。

WebDriverを追加すればブラウザベースでの試験も可能。

紹介参考:https://www.slideshare.net/takanorig/microservices-test-automation-with-karate

紹介参考:https://www.slideshare.net/takanorig/api-with-karate-146047857

 

Restlet Client

https://chrome.google.com/webstore/detail/restlet-client-rest-api-t/aejoelaoggembcahagimdiliamlcdmfm?hl=ja&utm_source

デスクトップ用テストツール

 

Postman

https://www.getpostman.com/

デスクトップ用テストツール

 

検討結果

要件を満たすWeb API用のテストフレームワークは以下があった。

この中で、Restfuseは開発が止まっているので検討から除外する。

 

参考資料

 

今回の用途として1つのAPIに複数のデータパターンのテストを行う(データドリブンテスト)を行うため、JavaコードベースのREST-assuredより、Karateの方が向いている。

assertibleはGUIベースであるので、大量のテストケース作成に向いてなさそう。


Notice: Trying to get property 'queue' of non-object in /usr/local/wordpress/wp-includes/script-loader.php on line 2876

Warning: Invalid argument supplied for foreach() in /usr/local/wordpress/wp-includes/script-loader.php on line 2876