自動テストは、テストプロセスの重要なコンポーネントです。 ソフトウェア品質管理 。ただし、Representational State Transfer(REST)APIのテストには注意が必要です。手動のRESTAPIテストに頼る人の多くは、詳細を見落とし、時間を節約する方法を見逃しています。
テストに成功したRESTAPIサービスには、次の領域が含まれます。
このためには、適切なツールが必要です。 ApacheJMeterとRESTAssuredは、RESTAPIサービスをテストするための2つの一般的なRESTテストツールです。あなたはそれらを実際にどのように使うことができるかについてもっと学ぶことができます ここに Y ここに 。
この記事では、これら2つのツールの長所と短所、および既存のRESTAPIプロジェクトのどこに最適かを学習します。
前提条件があります。JMeterおよびRESTAssuredにはJavaが必要であるため、JMeterまたはRESTAssuredを実行するにはコンピューターにJavaがインストールされている必要があります。
ApacheJMeterのインストールは非常に簡単です。 ダウンロードページ 、ZIPまたはTARを選択し、ファイルをダウンロードして解凍すると、準備が整います。
ファイルを解凍したフォルダー、サブフォルダーに移動しますbin
実行jmeter.bat
(または、Windowsでない場合は、オペレーティングシステムでも同様です)。 Apache JMeterの構成方法の詳細については、こちらを参照してください。 ページ 。
REST Assuredのインストールは、少し異なる経験です。 RESTAssuredはスタンドアロンツールではありません。これはJavaライブラリです。これを使用するには、新しいJavaプロジェクトをセットアップし、プロジェクトのライブラリとして含める必要があります。もちろん、多くのコンパイルツールがサポートされているため、依存関係リゾルバーをパブリックリポジトリ(Maven)にポイントするだけで済みます。 REST Assuredの構成方法の詳細については、[ここ](https://semaphoreci.com/community/tutorials/testing-rest-endpoints-using-rest-assured)を参照してください。
Apache JMeter ドキュメンテーション JMeterの公式Webサイトにあります。開始からリスナーのような複雑な機能まで、かなり包括的なドキュメントを提供します。また、JMeterの公式Webサイトには、チュートリアルビデオなどの非常に豊富なリソースへのリンクがあります。読書を減らして見るのが好きなら、これは間違いなくあなたにとってのボーナスです。
ザ・ ドキュメンテーション REST Assuredから、ツール/ライブラリ自体と同様に、Githubリポジトリ内にあります。オンラインドキュメントにリストされている機能の大規模なリストと、何かを達成する方法の非常に詳細な説明があります。ただし、すべてのドキュメントは優れたWebページであり、ツールを探索する最も簡単な方法ではありません。
Apache JMeterは、グラフィカルユーザーインターフェイス(GUI)を備えたスタンドアロンアプリケーションとして、GUIからテストを作成できます。これは、特にJMeterから導入されたエンティティの階層のために役立ちます。テスト内で作成するすべてのものは、JMeterGUIでツリーのような表現で表示されます。
テストを作成するために、コーディングスキルは必要ありません。ただし、GUIは、テスト計画に関する可能性を制限するものではありません。それでもカスタムスケジュール/フローを追加したい場合は、BeanShellコンポーネントでそれを行うことができます。
JMeterプロジェクトを保存すると、作成したすべてのものが大きなXMLファイル(拡張子.jmx
)に保存されます。一般に、テストの1つに小さな変更があったとしても、変更を加えるには(ほとんどの場合)GUIでプロジェクトを再度開く必要があります。
同じJMeterプロジェクトファイルで他のユーザーと共同作業する必要がある場合、この大きなXMLファイルは、ソース管理管理(SCM)システム(Git、SVN、Perforceなど)を使用して保守するのは簡単ではありません。
一方、REST Assuredは、テストを作成するためにJavaコーディングスキルを必要とします。テストを作成するための使いやすいGUIはありません。ただし、REST Assuredでは、Gherkin言語(Given-When-Then構文)を使用してテストを作成できるため、Javaコーディングのスキルが必要な場合でも、テストは非常に読みやすくなっています。
given(http://via.placeholder.com/2000x200?text=image+placeholder). config(RestAssured.config(http://via.placeholder.com/2000x200?text=image+placeholder).jsonConfig(jsonConfig(http://via.placeholder.com/2000x200?text=image+placeholder).numberReturnType(BIG_DECIMAL))). when(http://via.placeholder.com/2000x200?text=image+placeholder). get(“/price”). then(http://via.placeholder.com/2000x200?text=image+placeholder). body(“price”, is(new BigDecimal(12.12)));
REST Assuredはライブラリであり、テストは実際にはJavaで記述されているため、テストを個別のJavaファイルに編成できます。したがって、テストを変更する必要がある場合は、1つのファイルを開くだけで済みます。 GUIは必要ないので、SSH端末からでも簡単にテストを編集できます。 JavaファイルはSCMを使用して簡単に保守できるため、他のユーザーとのコラボレーションは非常に簡単です。
JMeterは、Webサービスおよびアプリケーションをテストするためのパフォーマンステストツールとしてよく知られています。パフォーマンステストのメトリックを表示するために使用できるさまざまな種類のグラフを含むレポートなど、すぐに使用できる優れたオプションがあります。
一方、これはJMeterの主な使用シナリオでもありません。応答アサーションを含む、JMeterを使用したRESTAPIの機能テストを作成できます。
REST Assuredの主な使用シナリオは、RESTAPIサービスの機能テストです。独自の応答アサーションメカニズム(Gherkinの構文)も付属しています。 REST AssuredはJavaライブラリであるため、単体テストと簡単に統合できます。
ベンチマークに関しては、RESTAssuredはすぐに使用できるベンチマークをサポートしていません。ただし、パフォーマンステストに使用する場合は、RESTAssuredでのパフォーマンステスト用に独自のカスタムフレームワークを開発する必要があります。
JMeterテストは2つの方法で呼び出すことができます。
ユーザーインターフェイスから[実行]ボタンをクリックして:
コマンドラインから:
jmeter -n -t your_script.jmx
JMeterの公式の推奨事項は、GUIを使用してパフォーマンステストを実行しないことです。テストは、コマンドラインから実行する場合に比べて(1秒あたりのリクエスト数の点で)実行が遅くなるためです。
一方、REST Assuredには、jUnitやTestNG(またはJavaコードを実行する他の方法)などの別個のテストランナーが必要です。
TestNGを使用したEclipseから:
たとえば、Antビルドツールを使用してコマンドラインから:
ant run-tests
Apache JMeterは、その主な目的のために、テストの結果から作成できる多数のタイプのレポートを持っています。 JMeterからパフォーマンステストを実行できるため、パフォーマンスメトリックは通常、次のようなグラフを使用して表示されます。
JMeterレポートと作成できるレポートの種類について詳しく知ることができます ここに 。
REST Assuredはレポートを作成しないため、ユーザーと選択したテストフレームワークに依存します。ただし、いくつかの単体テストフレームワークと統合すると、HTML、テキスト、またはXML形式で有用なレポートを取得できます。
テスト対象の製品の継続的インテグレーションに関しては、テストの実行と結果のレポートの両方で、テスト自動化フレームワークをCIツールと統合することが非常に重要です。
JMeterの自動テストは、を使用してJenkinsと簡単に統合できます。 プラグインのパフォーマンス これにより、ビルド後のアクションを構成し、Jenkinsの作業ページから素敵なダッシュボードページを取得できます。
Jenkinsにはほとんどすべてのテストフレームワーク用のプラグインがあるため、RESTAssuredはJenkinsと簡単に統合することもできます。たとえば、彼 プラグインTestNG これもまた、テスト結果の堅牢なトレンドチャートを作成できます。
これは簡単に測定できないカテゴリです。コミュニティの活動は、ツールの有効期限や寄稿者の数など、いくつかの要因によって異なります。
今日、ApacheJMeterにはより大きなコミュニティがあります。これは主に、JMeterがかなり前に市場に導入され、Webサービスおよびアプリケーションのパフォーマンステストに関して業界標準と見なされているという事実によるものです。 JMeterが公開 5〜6か月ごとの公式リリース 。彼の GitHubリポジトリ 非常に活発で、毎日新しい確認があります。 JMeterはBugzillaを問題トラッカーとして使用し、 未解決の問題のリスト 頻繁に変更されます。検索でのJMeterの結果は23000件を超えています スタックオーバーフロー 。ソーシャルネットワーキングサイトから、JMeterは公式アカウントを持っています ツイッター 。 FacebookとLinkedInには、JMeterの公式アカウントはありませんが、2つのグループがあり、そのうち最大のものはこれです。 Facebookグループ この LinkedInグループ 。
REST Assuredはメインステージに到達しており、REST APIサービスの機能テストの自動化に関して、最初の選択肢であるマルチソースの推奨事項になっています。 RESTAssuredが投稿しています 6か月に1回の公式リリース 過去2年間。ザ・ GitHubリポジトリ 貢献者が多く、JMeterよりも少しアクティブではありませんが、非常にアクティブでもあります。 REST AssuredはGitHubリポジトリの問題を追跡しているため、すべてが1か所にまとめられています。に スタックオーバーフロー 、REST Assuredの検索結果は2000を超えているため、JMeterの検索結果と比較して大幅に低いと言えます。ソーシャルメディアグループに関しては、 LinkedInグループ JMeterと比較して大幅に少ないメンバーに遭遇しました。 REST AssuredコミュニティはJMeterコミュニティほど大きくないかもしれませんが、非常に活発です。
JMeterとRESTAssuredはどちらも、お互いに利点があります。ただし、作業しているプロジェクトによっては、RESTAPIテストの自動化に一方が他方よりも優れている場合があります。どちらも非常に堅牢で、便利なテストオプションがあり、優れたレポート機能があり、カスタムテストフレームワークと簡単に統合できます。
これら2つの一般的なRESTテストツールについて、この記事で検討したすべての比較基準の概要を次に示します。
スプリングブートレスト例外処理
Apache JMeter | 安心してください | |
---|---|---|
コーディングスキルが必要 | 番号 | はい(Java) |
完全なドキュメント | はい | はい |
機能テスト | はい(ただし過剰) | はい |
パフォーマンスのテスト | はい | いいえ(箱から出して) |
SCMに適しています(Git、P4 ...) | 番号 | はい |
テストレポート | はい | 番号 |
CIツールとの統合 | はい | はい |
ユニットテストとの統合 | 番号 | はい |
並列化のテスト | はい | はい |
コミュニティ活動 | はい | はい |