karate framework tutorial
このチュートリアルは、KarateFrameworkを使用したAPIテストの概要です。空手テストスクリプトの構造と、最初のテストスクリプトを作成する手順について説明します。
APIは、Application ProgrammingInterfaceの頭字語です。簡単に言えば、アプリケーション間の通信を可能にするソフトウェア仲介者として定義できます。
APIテストが必要な理由は次のとおりです。
- 結果はより速く公開されるため、APIが正常に機能しているかどうかを確認するのを待つ必要はありません。
- 応答が速くなると、これらのAPIのデプロイも速くなるため、ターンアラウンドタイムを短縮できます。
- アプリのUIが作成される前であっても、障害を早期に検出することで、リスクを軽減し、障害を修正できます。
- 短期間で大規模な配送が可能です。
APIテストに取り組むことができるように、Postman、Mocha、Chaiなどのさまざまなツールが市場で入手可能です。これらは、APIをテストするための良好な結果と効果的な使用法を示していますが、これらはコードに大きく影響されます。これらを使用できるようにするには、技術的に健全で、プログラミング言語に精通している必要があります。
Karate Frameworkは、以前のソフトウェアツールのこの問題を美しく解決します。
学習内容:
空手フレームワークとは
空手?空手について話しましょう。日本のものですか?どう思いますか?偉大なブルース・リーが彼の自由な時間にこれを開発したのかもしれません。
空手の興味深いルーツを掘り下げたいと思いますが、とりあえず、 空手ツール それはによって開発されました ピータートーマス 、APIテスターを救うための優れたツールの1つ。
Karateフレームワークは、BDDアプローチに従うプログラムを作成するCucumberスタイルに従います。構文は、プログラマーでない人でも簡単に理解できます。そして、このフレームワークは、API自動化とパフォーマンステストを単一のスタンドアロンツールに組み合わせた唯一のAPIテストツールです。
これにより、ユーザーはテストケースを並列で実行し、JSONおよびXMLチェックを実行できます。
この情報を使用して、空手ツールをさらに詳細に理解するために、特定の重要なポイントを推測できます。
- 空手はTDDではなくBDDテストフレームワークです。
- プログラマーでない人でも簡単に使えるように設計されています。この機能は、技術的な背景や能力に関係なく、多くの人々がより多くの使用とアクセスを可能にするため、ゲームチェンジャーです。
- Cucumber機能ファイルとGherkins言語を使用して、非常に理解しやすいテストを作成します。
これらすべての機能により、今日利用できる最も有利な自動化ツールの1つになっています。
空手フレームワークの歴史
によって作成された ' ピータートーマス ’ 2017年、このソフトウェアは、テスト機能を誰もがすぐに利用できるようにすることを目的としています。これはJavaで書かれており、ほとんどの人はそのファイルも同じ言語であると期待していましたが、幸いなことにそうではありません。
むしろ、Cucumberフレームワークとの関係の結果であるGherkinsファイルを使用します。自動化ソフトウェアはCucumberの拡張であるため、操作でのGherkinsファイルの使用を継承します。 2つの大きな違いは、空手はテスト中にJavaを使用しませんが、Cucumberは使用することです。
Gherkins構文は非常に読みやすく、包括的であるため、これがプログラマー以外のユーザーに対応する理由です。これが、空手が自動APIテストの世界に参入するのに最も適していて推奨されている理由です。
Karate TestingFrameworkのいくつかの機能は次のとおりです。
- わかりやすいガーキンス語を使用しています。
- Javaのような技術的なプログラミング知識は必要ありません。
- これは、人気のあるキュウリの基準に基づいています。
- フレームワークを簡単に作成できます。
- 並列テストは空手自体が提供するコア機能であるため、依存する必要はありません。 Maven、Gradle 、など。
- テストをデバッグするためのUI。
- 別のファイルから機能ファイルを呼び出す。
- 社内で構築されたデータドライバーテストのサポートを提供するため、外部フレームワークに依存する必要はありません。
- 組み込みのネイティブレストレポート。さらに、Cucumberと統合して、UIレポートを改善し、より明確にすることができます。
- さまざまなテスト環境(QA、ステージ、製品、製品前)間で構成を切り替えるための社内サポートを提供します。
- 便利なCI / CD統合のシームレスなサポート。
- さまざまなHTTP呼び出しを処理できます。
- WebSocketのサポート
- SOAPリクエスト
- HTTP
- ブラウザのCookie処理
- HTTPS
- HTML形式のデータ
- XMLリクエスト
空手とREST-Assuredの比較
安心してください :RESTサービスをテストするためのJavaベースのライブラリです。コード行の記述にはJava言語を使用します。これは、多数の要求カテゴリのテストに役立ち、さらにさまざまなビジネスロジックの組み合わせの検証につながります。
空手フレームワーク :SOAPおよびRESTサービスのテストに使用されるCucumber / Gherkinsベースのツール。
次の表は、Rest-AssuredフレームワークとKarateフレームワークのいくつかの顕著な違いを示しています。
S.No | 基礎 | 空手フレームワーク | 安心してください |
---|---|---|---|
7 | 報告 | 社内レポートを提供するため、外部プラグインに依存する必要はありません。 UIを改善するためにCucumberレポートプラグインと統合することもできます。 | Junit、TestNGなどの外部プラグインに依存する必要があります |
1 | 言語 | きゅうりとガーキンの組み合わせを使用しています | Java言語を利用しています |
二 | コードサイズ | 通常、コードの行はキュウリのような構造に従うため、少なくなります | Java言語の使用を伴うため、コード行はより多くなります |
3 | 必要な技術的知識 | 非プログラマーは簡単にGherkinsコードを書くことができます | Javaコードを書くには技術的な知識が必要です |
4 | データ駆動型テスト | 同じものをサポートするには、TestNGまたは同等のものを利用する必要があります | 社内タグを使用してデータテストをサポートできます |
5 | SOAPコールサポートを提供しますか | はい、それは提供します | これはRESTリクエストにのみ関連しています |
6 | 並列テスト | はい、並列テストは並列レポート生成でも簡単にサポートされます | 大したことではありません。人々はこれを試みましたが、失敗率は成功率よりも高いです |
8 | 外部データのCSVサポート | はい、空手0.9.0から | いいえ、Javaコードまたはライブラリを使用する必要があります |
9 | WebUIオートメーション | はい、空手0.9.5からWeb-UIオートメーションが可能です | いいえ、サポートされていません |
10 | サンプルGET | Given param val1 = ‘name1’ | given(). |
したがって、上記の違いが示すように、空手は誰でもできる最も簡単なことの1つであると言っても過言ではありません。
Karateフレームワークの操作に必要なツール
これで、空手フレームワークに関する基本的な知識が得られたので、空手環境のセットアップに必要なプロセスとツールを見てみましょう。
#1)Eclipse
Eclipseは、コンピュータープログラミングの分野で使用される統合開発環境です。これは主にJavaプログラミングに使用されます。前述のように、空手はJavaで記述されているため、EclipseがAPIテストソフトウェアの頼れるIDEである理由はより理にかなっています。もう1つの理由は、これがオープンソースツールであるということです。これは、このツールを選択する非常に強力な理由です。
注意: IntelliJ、Visual Studio、および市場で入手可能な他のさまざまなエディターを使用することもできます。
#2)Maven
これは、主にJavaプロジェクトのビルドに使用されるビルド自動化ツールです。これは、空手環境をセットアップしてコードを記述する1つの方法です。 Maven要件を使用してEclipseをセットアップするには、をクリックします。 ここに Mavenインストール用。
Mavenで作業している間は、KarateFrameworkのサポートに役立つMavenの依存関係を使用してください。
次の依存関係は、pom.xmlのMavenで使用されます。
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
注意: 最新バージョンは、Mavenリポジトリで入手できる場合があります。
Webサービスを手動でテストする方法
#3)Gradle
GradleはMavenの代替であり、同じ容量で使用できます。それらには類似点と相違点がありますが、空手コードの環境をセットアップする際にも同様に使用できます。
使いやすく、柔軟性があり、アプリケーションに多数のプラグインを使用したモジュール化と管理の要件がある場合に使用することをお勧めします。 Gradleセットアップコードは次のようになります。
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
注意: あなたはどちらかを使うことができます MAVEN または グラドル。
#4)システムでのJava環境のセットアップ
Karate Frameworkスクリプトを開始するには、JDKおよびJRE環境をセットアップする必要があります。
空手テストスクリプトの構造
空手テストスクリプトは、「。feature」拡張子を持っていることで知られています。このプロパティはCucumberから継承されます。 Java規則でのファイルの編成も同様に許可されています。 Javaパッケージの規則に従ってファイルを自由に整理できます。
ただし、Mavenガイドラインでは、Java以外のファイルの保存は個別に行うように指示されています。それらはで行われます src / test / resources 構造。そして、Javaファイルは src / main / java 。
しかし、Karate Frameworkの作成者によると、JavaファイルとJava以外のファイルの両方を並べて保管することを強く信じています。それらによると、*。javaファイルと* .featureファイルは、標準のMaven構造に従うよりも、一緒に保持されている方がはるかに簡単です。
これは、pom.xmlを次のように調整することで簡単に実行できます(Mavenの場合)。
src/test/java **/*.java ...
KarateFrameworkの一般的な構造の概要は次のとおりです。
現在、このKarate FrameworkはRunnerファイルを使用しているため、これはCucumberでも機能ファイルを実行するために必要です。したがって、ほとんどの記述はCucumber標準に従います。
しかし、キュウリとは異なり、手順は空手での明確な定義を必要とせず、その結果、柔軟性と操作の容易さが向上します。 Cucumberフレームワークに従うときに通常追加する必要がある余分な接着剤を追加する必要はありません。
「ランナー」クラスは、ほとんどの場合、 TestRunner.java。
次に、TestRunner.javaファイルは次の形式になります。
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
そして、 。特徴 ファイルには、APIが期待される要件に従って機能していることを確認するためにテストする必要があるすべてのテストシナリオが含まれています。
一般的な* .featureファイルは次のようになります。
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
最初の基本的な空手テストスクリプトの作成
このセクションは、最初のテストスクリプトの作成を開始するのに役立ちます。これは、APIをKarateフレームワークの形式に変換するのに役立ちます。
基本的な空手テストスクリプトを作成する前に、次の必要条件をマシンにインストールしてください。
- Eclipse IDE
- Maven。適切なMavenパスを設定します。
- JDK&JRE。適切なパスを設定します。
ステップバイステップのアプローチを見てみましょう。
#1) 新しいを作成します MAVEN Eclipseエディターのプロジェクト
- Eclipseを開く
- (ファイル)をクリックします。 (新しいプロジェクト)を選択します。
- Mavenプロジェクトを選択します
- ワークスペースの場所を選択します。
- アーキタイプを選択します(通常、「 Maven-アーキタイプ-クイックスタート 1.1 」(単純なMavenプロジェクトの場合)。
- グループIDとアーティファクトIDを入力します(この例では次の値を使用しています)。
- グループID :空手
- アーティファクトID: KarateTestScriptsSample
- (完了)をクリックしてセットアップを完了します。
#二) 作成すると、プロジェクトエクスプローラーウィンドウに次の構造が表示されます。
#3) すべての依存関係を含めます。
循環リンクリストc ++
私たちの最初のステップは、セットアップ後、 すべての依存関係を含める それは実行に必要になります。すべてのタグをPOM.xmlの下に保持します(POM.xmlの使用法をすでに知っていると仮定します)。
- POM.xmlを開き、依存関係タグの下にある以下のコードをコピーして、ファイルを保存します。
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
クリック ここに ソース用。
#4) シナリオをブレインストーミングしましょう。この空手基本テストスクリプトで何をテストしますか。
シナリオ:
これを使用してAPIをテストします URL。
道: api / users / 2
方法: 取得する
そして、検証する必要があります 、リクエストが 成功コード(200) か否か。
簡単に言うと、サンプルAPIをテストして、正常に実行されているかどうかを確認します。
注意: テストに使用できるサンプルAPIを使用しています。任意のPATHを選択することも、APIを参照することもできます。
クリック ここに ソース用。
#5) 次のステップは、 。特徴 ファイル。
紹介セクションで説明したように、 .featureファイル Cucumberから継承されたプロパティです。このファイルには、APIテストを実行するために実行する必要のあるテストシナリオを記述します。
- フォルダに移動 src / test / java あなたのプロジェクトで。
- それを右クリックして、新しいファイルを作成します– userDetails.feature。 次に、(完了)ボタンをクリックします。
これで、フォルダの下に次のファイルが表示されます。 src / test / java
ザ・ 緑色のアイコン に似ています .feature fi 作成したばかりのキュウリのル。
- ファイルが作成されたら、次のセクションで説明するテストシナリオを作成します。
#6) シナリオと空白があるので。 特徴 ファイルの準備ができたら、最初のスクリプトから始めましょう。コーディングを始めましょう
手順5で作成したuserDetails.featureファイルの下に次のコード行を記述します。
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
上記のファイルに記述されているコンポーネントを理解してみましょう。
- 特徴: キーワードは、テストしている機能の名前を説明しています。
- バックグラウンド: これは、前提条件セクションとして扱われるオプションのセクションです。これを使用して、APIをテストするために必要なものをすべて定義できます。を含む ヘッダー、URL、パラメータ オプション。
- シナリオ: 表示されるすべての機能ファイルには、少なくとも1つの機能があります(ただし、 複数 シナリオ)。テストケースの説明です。
- 与えられた: これは、他のテストステップを実行する前に実行する必要があるステップです。実行する必要のあるアクションです。
- いつ: 次のテストステップを実行するために満たす必要のある条件を指定します。
- 次に: それは、に記載されている状態が発生した場合に何が起こるべきかを教えてくれます いつ 満足しています。
注意: 上記のキーワードはすべてGherkins言語からのものです。これらは、Cucumberを使用してテストスクリプトを作成する標準的な方法です。
また、機能ファイルで使用されているその他の単語は次のとおりです。
- 200: 期待しているステータス/レスポンスコードです(クリック ここに ステータスコードのリストについて)
- 取得する: POST、PUTなどのAPIメソッドです。
この説明がわかりやすかったと思います。これで、上記のファイルに正確に記述されている内容に関連付けることができます。
次に、TestRunner.javaファイルを作成する必要があります
上記のセクションで説明したように、Cucumberには、実行に必要なRunnerファイルが必要です。 。特徴 テストシナリオを含むファイル。
- フォルダに移動 src / test / java あなたのプロジェクトで
- それを右クリックして、新しいJavaファイルを作成します。 TestRunner.java
- ファイルが作成されたら、 その下に次のコード行を配置します。
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runnerは、ステップ5で記述された目的のシナリオを実行するために実行されるファイルです。
# 7) これで、両方のファイルの準備ができました TestRunner.Java そして userDeatils.feature。 私たちに残された唯一のタスクは 実行 スクリプト。
- TestRunner.javaファイルに移動し、次の画像に示すようにファイルを右クリックします。
- Run As-> JunitTestを選択します
- ここで、選択すると、テストケースが開始されたことを確認し始めます。
- テストスクリプトが実行されるのを待ちます。完了すると、ウィンドウの次の画像に示すようなものが表示されます。
- 最後に、私たちは最初の基本をうまく作成したと言うことができます テストスクリプト を使用して 空手フレームワーク。
#8) 最後に、Karateフレームワークは、実行された実行のHTMLレポートプレゼンテーションも提供します。
- ターゲットフォルダ-> surefire-reports->に移動します。ここに、開くことができるHTMLレポートが表示されます。
**ルックアンドフィールを向上させるために、Chromeブラウザを使用して同じものを開くこともお勧めします。
- 次のHTMLレポートが表示されます。 シナリオとテスト 上記のシナリオで実行されたもの:
結論
このチュートリアルでは、APIテスト、市場で入手可能なさまざまなテストツール、およびKarateFrameworkが対応するものと比較して優れたオプションである方法について説明しました。
ステップバイステップのアプローチに従って、最初の基本的なテストスクリプトを作成しました。基本的なものを作成することから始めました EclipseIDEのMavenプロジェクト .featureファイルを作成します。このファイルには、すべてのテストシナリオと、.featureファイルに記載されているテストケースを実行するためのランナーファイルが含まれています。
複数のステップの終わりに、テスト結果の実行レポートを見ることができました。
このチュートリアルが、Karate Frameworkを使用して最初のテストスクリプトを作成し、APIテストを実行する方法を学習する初心者にとって役立つことを願っています。この詳細なステップバイステップのアプローチは、APIでさまざまなテストを実行および実行するための素晴らしい方法です。