はじめに
以前、Swaggerを使ったAPIの自動生成を紹介しました。
今回は、WebAPIのテストツールDreddを使って、Swagger仕様書で作成したWebAPIのテストを実行してみたので紹介します。
Dreddのインストール
まずNode.jsとnpmがインストールされていることを確認します。
$ node -v
v12.1.0
$ npm -v
6.9.0
Dreddは以下コマンドでインストールできます。
$ npm install -g dredd
Dreddの実行
dredd swagger.yaml https://test.com
オプション
--reporter=apiary
このオプションをつけて実行することで、テストを実行した最後にURLが表示され、WEB上でテスト結果を確認することができます。
--user username:password
Basic認証がかかっている場合は、このオプションをつけて実行することでテストできます。
ハマったところ
業務で作成したswagger仕様書でDreddを使ったテストを試しましたが、以下でハマりました。
GETパラメータの例が無いと怒られる
・表示されたエラー
Required URI parameter 'parameterName' has no example or default value.
・解決方法
x-example
で例を記載する
POSTのbodyが空になる
produces
でcontent-typeの指定を行っていたのですが、これではPOSTのbodyが空になってしまい、テストできないようです。
・解決方法
produces
→consumes
参考
HTTP APIのテストツールDreddがSwaggerに対応していたので試してみた
DreddによるローカルAPIテスト
API Blueprintで書いたAPI仕様書をDreddを使ってCircleCIでテストしてみた
swaggerを読み込み自動でAPIのテストを実行するツール:dredd