DEV Community

Cover image for 最高のGatling代替ツール
Akira
Akira

Posted on Originally published at apidog.com

最高のGatling代替ツール

最高のGatling代替ツール

Gatling は苦労して評判を築き上げてきました。ノンブロッキングの負荷エンジンによって 1 台のマシンから数万の仮想ユーザーを絞り出し、すべてをコードで制御します。もともとは Scala DSL として始まりましたが、現在では Java、Kotlin、Scala、JavaScript、TypeScript を話し、HTTP、WebSocket、SSE、gRPC、JMS、MQTT をカバーしています。あなたの仕事が負荷プロファイル(ランプ、スパイク、ソークテスト)の設計であるなら、Gatling は本格的な計測器です。

今すぐ Apidog を試す

問題は、Gatling が日常的な API ツールになってしまったときに始まります。どんなに小さなチェックであっても、それはシミュレーションクラスです。コードを書き、コンパイルし、実行し、レポートを読みます。エンドポイントをつつくためのクライアントも、フロントエンドチームのためのモックサーバーも、利用者向けのドキュメントもありません。そして、実行結果を経時的に比較可能にするツール群(集中管理された履歴、トレンドダッシュボード、分散生成、ハンズフリーの CI)は Gatling Enterprise にあり、月額 €89 からです。負荷の大砲を買ったのに、それでドアをノックしているようなものです。

率直な答えをここに示します。Apidog は、あなたの一週間の大半を占める API 作業、つまりエンドポイントの設計、リクエストのデバッグ、モック、ドキュメント作成、そして機能テストとパフォーマンスチェックを 1 つのビジュアルプラットフォームから実行するための、Gatling の最良の代替ツールです。組み込みのパフォーマンステストは、既存のテストシナリオを最大 100 の仮想ユーザー、設定可能なランプアップ、ライブメトリクスで実行でき、シミュレーションコードは不要です。6 桁の同時実行数が必要な日については、正直なアドバイスは最後のセクションのタイトルにあります。それには Gatling を使い続けてください。この記事では、その境界線がどこにあるのかを明らかにします。

Gatling があなたに求めるもの

Gatling は徹底した test-as-code です。負荷テストはプログラムであり、アクションの連鎖をインジェクションプロファイルに結びつけ、Maven、Gradle、sbt、または npm を通して実行します。これがその力の源です。コードレビューが負荷テストをカバーし、バージョン管理がそれらを追跡し、DSL が GUI のスライダーでは表現できないワークロードの形状を表現します。

それは同時に日常的な負担でもあります。ヘッダーを確認するためにステージングエンドポイントに一度だけアクセスしたい? それはシミュレーションの用途ではないので、2 つ目のツールを開くことになります。フロントエンドチームがまだ存在しない API に対して構築している? モックサーバーはありません。利用者向けのドキュメント? それは Gatling の仕事ではありません。Gatling は API プラットフォームであると主張したことは一度もありません。問題は、すでにインストールされているという理由でチームがそれをそのように扱ってしまうことです。同じミスマッチは、top load testing software で比較したコードファーストの負荷ツールにも通底しています。

コミュニティエディションが止まる場所

オープンソースの Gatling(Apache 2.0、GitHub スター約 6.9k)は、ローカル実行に関しては本当に無料で高機能です。しかし Gatling 自身の位置づけは率直です。コミュニティエディションは「ローカル用途のみ」です。料金ページとエディション比較によると、単発の実行をパフォーマンス実践へと変えるものは Enterprise の機能です。

  • 分散負荷生成。 コミュニティでは 1 マシン、1 ジェネレーター。マルチジェネレーター、マルチリージョンのインジェクションは Enterprise です。
  • 集中管理された実行履歴とトレンドダッシュボード。 コミュニティでは実行ごとのレポートのみ。今週を先週と比較するのは Enterprise です。
  • マネージドな CI/CD 自動化、スケジューリング、SLO トラッキング。 Enterprise です。
  • コラボレーション、RBAC、SSO。 Enterprise です。

Enterprise の料金は月額 €89 から(Basic: 最大 60,000 仮想ユーザー、1 時間のテスト、1 ロードジェネレーター、2 シート)、Team は月額 €356(180,000 VU、5 時間、3 ジェネレーター、10 シート)で、それ以上はカスタム価格です。妥当な価格ですが、何を買っているかに注目してください。より多くの負荷、より多くの履歴、より多くのシートです。どのティアも API クライアント、モックサーバー、ドキュメントを追加しません。それは製品ではないからです。

答え:Apidog

Apidog は 500,000 人以上の開発者が使用する API 開発プラットフォームです。1 つのスペックが、ビジュアルなエンドポイントデザイナー、リクエストクライアント、スマートモックサーバー、自動生成ドキュメント、自動化されたテストシナリオを動かし、それらの同じシナリオがパフォーマンステストも兼ねます。

特に Gatling と比較した場合:

  1. シミュレーションクラスなしのパフォーマンスチェック。 すでに構築したテストシナリオを取り、仮想ユーザー(最大 100)、実行時間、ランプアップ時間を設定して実行します。ライブパネルがスループット、平均および最小/最大レスポンスタイム、エンドポイントごとのエラーを報告します。データ駆動の実行では、各仮想ユーザーに異なるデータ行を順番に、またはランダムに供給します。完全な手順は API performance testing tutorial にあります。
  2. API ライフサイクルの残りが存在します。 クライアントでリクエストをデバッグし、スキーマ付きのドキュメント化されたエンドポイントとして保存し、エンドポイントが定義された瞬間に利用者へモック URL を渡し、独自ドメインでインタラクティブなドキュメントを公開します。Gatling にはどの価格でもこれに相当するものがありません。
  3. 機能テストが第一級です。 ビジュアルシナリオはリクエストを連鎖させ、ステップ間でデータを渡し、レスポンスに対してアサートし、コードなしでスキーマに対して検証します。Gatling では、アサーションは負荷実行をゲートするものであり、振る舞いをリグレッションテストするものではありません。
  4. Enterprise 契約なしの CI。 シナリオは無料プランの Apidog CLI を介して任意のパイプラインでヘッドレス実行でき、無料プランは最大 4 ユーザーをカバーします。有料プランは 1 ユーザーあたり月額 $9 からです。

切り替えが機能ごとにどのようなものか

日常的なリクエストとデバッグ

これは Gatling が参入していないカテゴリです。Apidog では、他の API クライアントと同じようにリクエストを送信します。メソッドを選び、パラメータを入力し、認証を添付し、レスポンスを検査します。リクエストは、シミュレーションコードの隣にある使い捨ての curl 行ではなく、保存され、ドキュメント化されたエンドポイントになります。ゼロからではなく Postman から来たのですか? 求めている比較は the best Postman alternative です。

負荷チェック、ある地点まで

トレードオフについて正確に述べましょう。Apidog のパフォーマンステストは最大 100 仮想ユーザーで、設定した期間シナリオをループし、集計メトリクスをライブで報告します。これで、ほとんどのチームがほとんどの週に尋ねる疑問をカバーできます。エンドポイントは想定された同時実行数で持ちこたえるか、新しいクエリで速度が低下したか、レートリミッターはあるべき場所で作動するか。しかし Gatling のホームグラウンドはカバーしません。数万のユーザー、オープンワークロードモデル、カスタムインジェクションプロファイル、JMS や MQTT などのプロトコルです。隣接ツールでその線がどこにあるかは、the Locust alternative for API load testing と k6 load testing guide で語った話です。

モック、ドキュメント、そしてスペック

エンドポイントを定義すると、Apidog のスマートモックがスキーマベースのレスポンスを即座に返し、サンプルは不要です。ドキュメントは同じ定義から生成され、カスタムドメインに公開されます。API ツーリングが Gatling リポジトリと wiki ページであるチームにとって、これは最大の単一のアップグレードです。シミュレーションがたまたまエンコードしているものが真実の源なのではなく、スペックが真実の源になるのです。

CI とレポート

Gatling コミュニティは、ビルドを自分で配線すれば CI で実行できますが、実行履歴とトレンドは Enterprise にあります。Apidog のシナリオは、無料プランで任意のパイプラインから CLI で実行でき、クラウドレポートがチームワークスペースに共有されます。実行が自動化されたら何を測定すべきかについては、what is software performance testing から始めてください。

Gatling vs Apidog の概要

Gatling community vs Gatling Enterprise vs Apidog

Gatling(コミュニティ) Gatling Enterprise Apidog
形態 コード DSL(Java/Kotlin/Scala/JS/TS) 同じエンジン + SaaS プラットフォーム ビジュアルプラットフォーム、デスクトップ + ウェブ
最大負荷 数万 VU、1 マシン 数百万、分散 100 VU
日常的な API クライアント なし なし あり
モックサーバー なし なし スキーマ対応のスマートモック、無料
API ドキュメント なし なし 公開されたインタラクティブなドキュメント
機能テストシナリオ 負荷実行へのアサーション 同じ ビジュアルシナリオ、スキーマ検証
実行履歴とトレンド 実行ごとのレポートのみ 集中管理ダッシュボード ワークスペース内のクラウドレポート
CI 実行 手動配線 マネージド、Enterprise Apidog CLI で無料
学習曲線 JVM または npm ビルド + DSL 同じ + プラットフォーム ビジュアル、最初のテストまで数分
価格 無料、ローカル用途 月額 €89 から 最大 4 ユーザー無料、以降 1 ユーザーあたり月額 $9

コストと適合性の計算、正直に

あなたの要件が大規模な負荷シミュレーションであるなら、Apidog は競合せず、このセクションは短くなります。Gatling にお金を払い(またはコミュニティ版をローカルで実行し)、それで終わりです。

興味深いのは、ほとんど数百の仮想ユーザーを超えることのないテストのために実行履歴と CI 自動化を得るために Gatling Enterprise Basic の年間 €1,068 を天秤にかけ、それでもモックサーバーとドキュメントを欠いているチームのケースです。4 人のチームなら、Apidog はクライアント、モック、ドキュメント、機能スイート、CI 実行、100 VU チェックを $0 でカバーします。10 人なら年間 $1,080 で、ほぼ Gatling Basic の価格とちょうど同じですが、この 2 つの支出は異なるカテゴリを買っています。一方は、依然として手作業でプログラミングするエンジンのために、より大きな負荷数値を買います。もう一方は、あなたの API を取り巻くプラットフォームを買います。多くのチームは退屈で正しい答えにたどり着きます。ライフサイクルには Apidog、四半期ごとの大規模負荷リハーサルのためにコミュニティ Gatling をリポジトリに保持し、負荷側ツーリングの支出はゼロです。

Gatling からの移行

シミュレーションコード用のインポートウィザードはありませんし、必要でもありません。移行は意図の再構築であり、素早くできます。

  1. シミュレーションがエンコードしているものを棚卸しする。 ベース URL、認証フロー、リクエストチェーン、フィーダー(CSV データ)、アサーションです。そのリストがあなたの API サーフェスです。
  2. スペックがあればインポートする。 Apidog にインポートされた OpenAPI ファイルは、スキーマ、ドキュメント、ライブモックを備えたエンドポイントになります。スペックがない? シミュレーションのリクエスト定義からエンドポイントを再作成します。ほとんど貼り付けです。
  3. リクエストチェーンをテストシナリオとして再構築する。 Gatling の exec チェーンはシナリオステップに対応し、チェックとセッション変数はステップ間で渡される抽出変数になります。
  4. フィーダーをテストデータとして再作成する。 同じ CSV をアップロードし、仮想ユーザーごとに順次またはランダムなマッチングを選びます。
  5. パフォーマンスプロファイルを設定する。 仮想ユーザー、実行時間、ランプアップ。これは Gatling の基本的なクローズドモデル構成に対応します。複雑なオープンモデルプロファイルには相当するものがなく、これが「Gatling を使い続ける」条項の一部です。
  6. CLI を CI に配線する。 手作りの Gatling ビルドステップを Apidog CLI 実行に置き換えます。失敗は同じようにパイプラインをゲートします。

十数のエンドポイントと 2 つのシナリオを持つ API なら、午後 1 日で移行できます。

Gatling が依然として意味を持つとき

仕事が API 開発ではなく負荷エンジニアリングであるときは、罪悪感なく Gatling を使い続けてください。具体的には、数百の同時ユーザーを超える持続テスト、ユーザー数よりも到着率が重要となるオープンワークロードモデル、カスタムインジェクション形状、JMS または MQTT トラフィック、あるいは Enterprise の分散ジェネレーターとトレンドダッシュボードにすでに投資している組織です。Apidog の 100 VU という上限は現実の上限であり、そうでないふりをすると時間を無駄にするだけです。私たちが推奨するパターンは、日常的なライフサイクルと 100 VU 未満のチェックは Apidog で、スケジュールされた重量級リハーサルには Gatling で、というもので、load testing tools で描いたのと同じ分業です。

よくある質問

Gatling は無料ですか?

コアエンジンは Apache 2.0 の下でオープンソースであり、ローカル用途では無料です。分散生成、集中管理された実行履歴、マネージド CI、コラボレーションを追加する Gatling Enterprise は月額 €89 からです。より広い分野については top load testing software で概観しています。

Apidog は負荷テストで Gatling を置き換えられますか?

最大 100 仮想ユーザーまでは、はい。Apidog はランプアップ、実行時間、ライブメトリクスを備えた負荷下でテストシナリオを実行します。それ以上は、いいえ。大規模およびオープンモデルのシミュレーションは依然として Gatling の領域であり、the Locust alternative for API load testing で引いたのと同じ境界です。

Gatling を使うのに Scala を知っている必要がありますか?

もう必要ありません。シミュレーションは Java、Kotlin、Scala、JavaScript、または TypeScript で書けます。それでもテストごとにコードとビルド設定を書き、保守する必要があり、それが Apidog のビジュアルシナリオが取り除くオーバーヘッドです。

代わりに k6 や JMeter はどうですか?

どちらも同じコードファーストの負荷のニッチに位置し、同じライフサイクル上のギャップがあります。API クライアント、モック、ドキュメントがありません。両方の切り替えについては the best k6 alternative と the best JMeter alternative で扱い、k6 自体については k6 load testing で扱っています。

Apidog のパフォーマンステストはデータ駆動の実行をサポートしていますか?

はい。シナリオにテストデータを添付すると、各仮想ユーザーが順番に、またはランダムに行を取得するので、100 の仮想ユーザーが全員同じアカウントでログインすることはありません。設定手順は API performance testing tutorial にあります。

日常業務では負荷の大砲を置きましょう

Gatling のリクエストチェーンをビジュアルシナリオとして再構築し、CLI 経由で毎コミット実行し、同時実行数の答えが必要なときはいつでも 100 VU 未満の負荷で実行します。大規模なリハーサルのためにコミュニティ Gatling をリポジトリに保持します。Download Apidog するか、ブラウザで開始してください。4 人のチームなら無料で、モックサーバーとドキュメントは同じエンドポイントに無料で付いてきます。

Top comments (0)