how automate api requests using rest assured
このチュートリアルでは、Jenkinsでテストスクリプトを実行する際に、RESTAssuredを使用してAPIリクエストを自動化する方法を学習します。
REST APIチュートリアルシリーズの2番目のチュートリアルでは、さまざまなタイプの応答コード、RESTリクエスト、RESTのベストプラクティス、およびPOSTMANを使用したAPIテストについて学習しました。
残り Webサービスは、開発、実装、アクセス、そして実行が容易なため、日々人気が高まっています。その上、これらは軽量であり、従うべき厳格な基準はありません。
ただし、存在するサービスの数が多く、新しいビルドごとに実行する必要がある場合は、テスターとプロジェクトのコストにとって悪夢になります。繰り返しになりますが、一部のサービスはプロジェクト自体に関連する内部的なものであり、一部はサードパーティによって消費されるように構築されています。
そのため、自動化のアイデアが生まれました。以下のようなRESTサービスを自動化するために利用できるいくつかのツールがあります-
- vRest
- HttpMaster
- Parasoft
- 安心してください
RestAssuredは、テスターの間で人気のある自動化ツールです。それが好ましいオプションである理由を見てみましょう。
学習内容:
なぜRESTASsured?
- オープンソースであるため、どの組織でもプロジェクトのニーズに使用できます。
- REST AssuredはJavaライブラリであるため、他のツールのようにGUIとして提供されることはありません。これは、JavaでRESTサービスをテストするためのフレームワークです。
- 自動化スクリプトを作成するためのドメイン固有言語(DSL)を提供し、Javaなどの任意の母国語を使用し、RESTful WebAPIをテストします。
- リクエスト、レスポンスのXMLおよびJSON形式をサポートします。
- ヘッドレスクライアントとして機能します。
- このライブラリを使用して、サーバーに送信するリクエストをカスタマイズできます。
- また、複雑なビジネスロジックのさまざまな組み合わせをテストできます。
- 送信されたリクエストのステータスコード、レスポンス、レスポンス本文、ヘッダーをサーバーからフェッチすることができます。
- これにより、BDDスタイルのテストスクリプトをGIVEN-WHEN-THENの形式で記述できるため、特にIT以外のバックグラウンドを持つビジネスチームのメンバーも、BDDを表示して、ロジックとテストカバレッジを理解できます。
このチュートリアルでは、最初のRESTAPIチュートリアルでPOSTMANを介して手動で作成したリクエストを自動化します。また、GITHUBという名前の商用ツールについても説明します。
RESTAssuredを使用したWebAPIリクエストの自動化
このチュートリアルでは、エンドツーエンドの自動化を行います。つまり、Javaクラスを作成し、Jenkinsから実行します。
前提条件:
- 対象となる受信者は、Eclipse IDE、Maven、TestNG、ReportNGの実用的な知識を持っている必要があります。
- 受信者もJenkinsに注意する必要があります。
- Web経由で展開されているサービスにアクセスする場合は、インターネット接続が必要です。ローカルにデプロイされたサービスにアクセスする場合は、テスターに権限があることを確認してください。
- 商用のセキュリティで保護されたサイトを自動化する場合は、認証トークン、APIトークン、APIキーなどが正しく機能し、現在スクリプトを自動化しているテスターに提供されていることを確認してください。
URLのテスト
- http://jsonplaceholder.typicode.com 稼働中です
- ユーザーは有効な資格情報を持っています GitHub
環境設定
#1) EclipseIDEをインストールします
まず、EclipseIDEをの公式ウェブサイトからダウンロードする必要があります。 Eclipse。
次に、IDEをインストールします。パス、JAVA_HOME環境変数を正しく設定してください。将来の使用に備えて、JDK、JREパスを手元に置いておきます。 Eclipseをインストールしたら、ワークスペースを作成/設定し、ワークスペースを開きます。
私の場合は次のとおりです。
#二) Mavenプロジェクトを作成する
環境変数を使用してMavenホームを構成したことを確認してください。
#3) REST-ASSURED、TESTNG、REPORTNGに関連するすべての関連する必要な依存関係プラグインをpom.xmlに追加します。
これがサンプルpom.xmlです。
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
#4) 必要なjarをMavenプロジェクトのビルドパスに追加します。
通常、これらは、RESTで保証されたjar、TESTNG、REPORTNGの下にあるライブラリファイルです。依存関係、プラグインをpom.xmlファイルに追加しましたが、エラーが発生することがあるため、エラーを防ぐために、これらのjar /ライブラリを追加してMavenプロジェクトのパスを構築する必要があります(存在する場合)。
ただし、Mavenプロジェクトの代わりにJavaプロジェクトを作成する場合は、これらのjar、ライブラリを手元に置いて、必要に応じて使用する必要があります。
#5) JENKINSのインストール(Windowsの場合)
jenkins.io/download/からJenkinsをダウンロードします。
次に、セットアップを開き、正しくインストールされるまで手順に従います。
インストールしたら、JENKINSを起動する必要があります。コマンドプロンプトから同じことを実行できます。
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090。
上記のメッセージが表示されたら、次のメッセージが表示されるまでもう少し待つ必要があります。
上記の画面でJenkinsが完全に稼働している最後のメッセージを確認できるので、次のURLを使用してJenkinsを起動できます。
http:// localhost:9090 /
最初は時間がかかる場合がありますが、その後は速くなります。その後、ユーザーを作成する必要があります。
ユーザーが作成されたら、Jenkinsを再起動し、パスワードを使用してUIにアクセスする必要があります。
Jenkinがインストールされると、(Jenkinsの管理)> (グローバルツール構成)でプラグインをインストールできます(Jenkinのインストール中でも)。
自動化スクリプトの作成
#6) 新しいJAVAクラスを作成してTESNGに変換できます または TESTNG CLASSを直接作成してから、新しいXMLファイル(testng.xml)を作成します。
簡単にするために、2つのJavaクラスが作成されています
#1)Tutorial1.java –このファイルには、ダミーのテストURLを使用した、GET、POST、PUT、PATCH、DELETE、LOGREQUEST、LOGRESPONSE、ASSERTなどのすべてのメソッドの使用法が含まれています。 https: jsonplaceholder.typicode.com。
URLはそのような応答を返すことで元のURLのように動作しますが、実際にはサーバー上では変更は行われません。クライアントからリクエストを受け取ったときのWebサービスのプロパティと反応を示すだけです。
#2)Tutorial2.java –このファイルには、要点に追加されたコメントを読むGitHubのリアルタイムの例が含まれています。
注意 :GitHubには認証が必要なため、GitHubにログインしたらAPIトークンまたは基本認証を生成する必要があります–設定、またはPOSTMAN自体から認証トークンを生成できます
TESNG.XML
これが両方を実行するXMLファイルです Tutorial1.java そして Tutorial2.java
デモンストレーションの目的で、実行するすべてのメソッドを除外し、Tutorial1.javaの1つのGETメソッドのみを実行できるようにしました。ただし、実行されたすべてのメソッドを確認したい場合は、over TestNGXMLファイルに置き換える必要があります。この場合、TestNGファイル名はtestng1.xmlです。
verizonホットスポットのネットワークセキュリティキーは何ですか
今、上記を実行すると Eclipse上のtestng1.xmlファイル 次に、次のようになります コンソール出力。
(TestNGContentHandler) (警告)ファイルの先頭に「」を追加することを強くお勧めします。そうしないと、TestNGが失敗するか、期待どおりに機能しない可能性があります。
(TestNG)実行中:
D: RestAssured restapi testng1.xml
*** GETメソッド ***
ユーザーID- (1)から-(3)タイトル-(運動が苦痛であることが面倒な場合または)体-(そして正しいが、法律
そして、選挙のすべてまたは視覚障害者の喜びのために
または結果として生じる悲しみと喜びを非難する
そして、いやらしい、または不快感の苦労に出入りすることをいとわない;そして)
*** メソッドの終了を取得 ***
————————————————–
RESTAPIチュートリアル
実行されたテストの合計:1、失敗:0、スキップ:0
————————————————-
これがスイートのテスト結果です。
TestNGによって生成されるデフォルトのレポートは次のとおりです。
これがReportNGによって生成されたレポートです。
ReportNGはすでに構成されているため、上記のように合格、不合格の合計数を明確に確認できます。
コマンドプロンプトを使用したテストスクリプトの実行
- コマンドプロンプトを開始する必要があります
- 作業ディレクトリをワークスペースの場所として設定します
- ビン/ターゲットの場所を見つける
- ライブラリの場所を検索/作成する
- まず、プロジェクトが存在するディレクトリであるセットが必要です。私の場合はD: RestAssured restapiです
- Java –キーワード
- cp –これはクラスパスであり、プロジェクト内でJavaクラスが存在するパスを意味します
- 目標 –これは、Javaプロジェクトで作業しているときのbinフォルダーと同じです。 Mavenプロジェクトに取り組んでいるので、このフォルダーが作成されます。このフォルダーの下に、クラス、テストクラスの2つのフォルダーを追加できます。実際のJavaクラスは、これら2つのフォルダーの間に存在する必要があります。
- Lib –このフォルダーには、Eclipseからテストスクリプトを実行するときに使用したすべてのjarが含まれます。場合によっては、フォルダが存在しない可能性があります。したがって、フォルダを作成し、その中にすべてのjar、実行可能ファイルなどを保持する必要がある場合があります。
- org.testng.TestNG testng1.xml –これは構文のようなものです。最後の部分はtestng1.xmlです。これはTestNGのリソースファイルであり、目的のテストスクリプトを実行するために呼び出されます。
完全なコマンドは次のようになります
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
その後、Enterキーを押します
注意: Javaプロジェクトで作業しているときに、binフォルダーが表示されます。ただし、Mavenプロジェクトで作業している場合は、ターゲットフォルダーと通常のクラスがあり、その下にtest-classesフォルダーがあります。
BATファイルの作成とテストスクリプトの実行
コマンドプロンプトを開いて上記のコマンドを実行してテストスクリプトを実行する代わりに、コマンドをテキストファイルに保存し、保存するときに次のような名前を付けることができます。
「run.bat」(run.batの周りに「」を付けておくようにしてください)
作成後の外観は次のとおりです。
「実行」をダブルクリックします
コマンドプロンプトが開き、テストスクリプトが実行され、実行が完了すると、コマンドプロンプトが閉じます。
JENKINSとMaven、Javaの統合
Jenkinsで4〜5の構成を作成して、Maven、Javaと統合し、同じように実行する必要があります。
Jenkinsにログインすると、
Goto Manager Jenkins >>グローバルツール構成
JDKのインストールパスを設定する
注意 :JenkinのバージョンがJDK / Javaバージョンをサポートしていることを確認してください。 Jenkinsバージョン2.73には、少なくともJDK / JAVAバージョン1.8が必要です。そうでない場合、テストスクリプトの実行中に問題が発生します。
Mavenのインストールパスを設定します
その後、Goto Manager Jenkins >>システムの構成
環境変数パスを設定する
次、 新しいアイテムを作成する
(新しいリンクの作成)をクリックして、を指定する必要があります 名前 ジョブの場合、プロジェクトのタイプを次のように選択します フリースタイル 。今のところ、他のことを心配する必要はありません。
ジョブが作成されると、次のようになります。
今すぐ仕事をクリックしてください
以下の手順に従ってください。
- 左側のパネルにある構成リンクをクリックします。
- (全般)タブを下にスクロールして、(詳細)ボタンをクリックします。
- カスタムワークスペースチェックボックスを選択し、プロジェクトフォルダの場所を指定します。
その後
- さらに下にスクロールして、トリガーを作成します
- (定期的にビルドする)チェックボックスを選択します
- 下記のように時間を設定してください
下にスクロールして、ビルドの名前を設定します。私たちの場合、それは実行可能なWindowsバッチコマンドです。
これは、以前にrun.batファイルを保持していたのと同じ場所であるD: RestAssured restapiフォルダーにあります。
これまでに行った上記の変更をすべて保存します。
ここで、cronジョブが実行されるのを待ちます。ビルドが開始されていることがわかります。
ビルドが正常に実行されたら、次に上の画像で指定されているビルド#20をクリックする必要があります。
クリックしてください コンソール出力 左側のパネルのリンク。
これで、次の出力が表示されるはずです。
結論
REST ASSUREDは、言語に関係なくRESTAPIを自動化するための非常に便利なJAVAライブラリです。多くの組み込みオプションがあります。また、興味深い機能を備えた多くのバージョンがあり、オプションが含まれています。 XML、JSONなどのリクエストとして多くのフォーマットをサポートします。
このチュートリアルでは、Jenkinsを使用してテストスクリプトを実行しながら、RESTAssuredを使用してAPIリクエストを自動化する方法について説明しました。また、APIリクエストを自動化するためにRestAssuredが優れた選択肢である理由についても説明しました。
このRestAPIチュートリアルシリーズをお楽しみいただけたでしょうか。