パフォーマンステストは、ソフトウェアテストとパフォーマンス評価の重要な要素です。 これには、システムに同時にアクセスする多数のユーザーをシミュレートして、高いユーザー負荷の下でのシステムの動作を判断することが含まれます。 このプロセスは、組織が実際のシナリオでシステムがどのように実行されるかを理解し、潜在的なパフォーマンスのボトルネックを特定するのに役立ちます。 さまざまな負荷条件下でアプリケーションのパフォーマンスをテストすることは、ボトルネックを特定し、アプリケーションのパフォーマンスを向上させるのにも役立ちます。
この記事では、Ddosify Docker 拡張機能の概要を示し、パフォーマンス テストに使用を開始する方法を示します。

パフォーマンステストの重要性
パフォーマンス テストを定期的に実行して、顧客が優れたエクスペリエンスを得られるように、さまざまな負荷条件下でアプリケーションが適切に実行されていることを確認する必要があります。 Kissmetrics は、ページの応答時間が1秒遅れると、コンバージョンが 7%減少し、顧客の半数がWebサイトが2秒未満で読み込まれることを期待していることを発見しました。ページの応答が 1 秒遅れると、e コマース サイトの年間売上が数百万ドル 失われる可能性があります。
Ddosifyに会う
Ddosify は、負荷と遅延のテストに焦点を当てた高性能のオープンコアパフォーマンステストプラットフォームです。 Ddosifyは、次の3つの製品のスイートを提供しています。
1. Ddosify Engine:シンプルなJSONファイルを使用してターミナルからアプリケーションをテストするために使用できる、オープンソースのシングルノードロードテストツール(6K +スター)。 Ddosify は Golang で書かれており、Linux、macOS、および Windows にデプロイできます。 開発者や中小企業は、Ddosify エンジンを使用してアプリケーションをテストしています。 このツールは GitHub で入手できます。
2. Ddosify Cloud: プログラミングの専門知識がなくてもアプリケーションをテストできるオープンコアSaaSプラットフォーム。 Ddosify Cloudは、Ddosifyエンジンを分散的に使用し、コードなしでロードテストシナリオを生成するためのWebインターフェイスを提供します。 ユーザーは、世界中のさまざまな場所からアプリケーションをテストし、高度なレポートを生成できます。 Docker、Kubernetes、InfluxDB、RabbitMQ、React.jsなど、さまざまなテクノロジーを使用しています。 Golang、AWS、およびPostgreSQLはこのプラットフォーム内にあり、すべてユーザーに対して透過的に連携します。 このツールは、 Ddosifyのウェブサイトで入手できます。
3. Ddosify Docker Extension: このツールはDdosifyエンジンと似ていますが、Dockerデスクトップの拡張機能のおかげで使いやすいユーザーインターフェイスを備えています。 この機能を使用すると、Docker デスクトップ内でアプリケーションをテストできます。 Ddosify Docker 拡張機能は、拡張機能マーケットプレースから無料で入手できます。 Ddosify Docker Extension リポジトリはオープン ソースであり、 GitHub で入手できます。 このツールは、 Docker 拡張機能マーケットプレースからも入手できます。
この記事では、Ddosifyドッカー拡張機能に焦点を当てます。
Ddosify のアーキテクチャ
Ddosify Docker 拡張機能は、Ddosify エンジンを内部ベースイメージとして使用します。 要求数、期間、ヘッダーなどの設定を拡張機能 UI から収集し、Ddosify エンジンに送信します。
Ddosify エンジンはロード テストを実行し、結果を拡張機能に返します。 次に、拡張機能は結果をユーザーに表示します(図1)。

なぜドドシファイするのですか?
Ddosifyは使いやすく、 動的変数、 CSVデータのインポート、 さまざまな負荷タイプ、 相関、 アサーションなど、多くの機能を提供します。 Ddosifyには、ユースケースごとに異なるオプションもあります。 個人の開発者の場合は、Ddosify Engine または Ddosify Docker 拡張機能を無料で使用できます。 コード不要のロード テスト、高度なレポート、マルチジオロケーション、およびより多くの要求/秒 (RPS) が必要な場合は、Ddosify Cloud を使用できます。
Ddosifyを使用すると、次のことができます。
- アプリケーションのパフォーマンスの問題を特定するには、大量のユーザー トラフィックをシミュレートします。
- インフラストラクチャを最適化し、必要なリソースに対してのみ料金を支払うようにします。
- 顧客が行う前にバグを特定します。 一部のバグは、高負荷でのみトリガーされます。
- システム容量を測定し、その制限を特定します。
なぜDdosifyをDocker拡張機能として実行するのですか?
Docker拡張機能は、ソフトウェアアプリケーションを構築し、日常のワークフローに統合するのに役立ちます。 Ddosify Docker 拡張機能を使用すると、Docker デスクトップ内からアプリケーションのロード テストを簡単に実行できます。 Dockerデスクトップ以外のものをマシンにインストールする必要はありません。 Ddosify Docker 拡張機能 の機能は次のとおりです。
- 6K + GitHubスターとすべてのプラットフォームで合計1M +のダウンロードを持つ強力なコミュニティ。 コミュニティメンバーは、機能の提案/追加やバグの修正によって貢献します。
- 現在、HTTP プロトコルと HTTPS プロトコルをサポートしています。 他のプロトコルも進行中です。
- さまざまな荷重タイプをサポートします。 次のようなさまざまな負荷タイプでシステムの制限をテストします。
- リニア
- インクリメンタル
- 振った
- 動的変数 (パラメーター化) のサポート。 Postmanと同様に、Ddosifyは 動的変数をサポートしています。
- ロード テストの結果を PDF として保存します。
はじめ
前提条件として、Docker Desktop 4.10.0 以降がマシンにインストールされている必要があります。 Dockerデスクトップ は、当社のWebサイトからダウンロードできます。
ステップ1:Ddosifyドッカー拡張機能をインストールする
Ddosify は Docker の拡張機能パートナーであるため、Docker Extensions Marketplace から Ddosify Docker 拡張機能を簡単にインストールできます (図 2)。 Docker デスクトップを起動し、[ 拡張機能の追加] を選択します。 次に、 テスト ツール でフィルター処理し、[Ddosify] を選択します。 [ インストール ]ボタンをクリックして、Ddosifyドッカー拡張機能をインストールします。 数秒後、Ddosify Docker 拡張機能がマシンにインストールされます。
![- DDOSIFYフィギュア2 Ddosify Docker のインストール方法を示すスクリーンショット。 Docker Desktop を起動し、 [拡張機能の追加] を選択します。 次に、Testing Toolsでフィルタリングし、[Ddosify]を選択します。 [インストール]ボタンをクリックして、Ddosify Docker拡張機能をインストールします。 数秒後、Ddosify Docker Extensionがマシンにインストールされます。](https://www.docker.com/ja-jp/app/uploads/2023/03/ddosify-figure2-1110x747.jpg)
手順 2: ロード テストを開始する
アプリケーションのロード テストは、Docker デスクトップから開始できます (図 3)。 Dockerデスクトップを起動し、[拡張機能]セクションの [Ddosify ]アイコンをクリックします。 Ddosify Docker 拡張機能の UI が開きます。
![- DDOSIFYフィギュア3 Docker デスクトップからアプリケーションのロード テストを開始する方法を示すスクリーンショット。 Docker Desktop を起動し、[拡張機能] セクションの [Ddosify] アイコンをクリックします。 Ddosify Docker拡張機能のUIが開きます。](https://www.docker.com/ja-jp/app/uploads/2023/03/ddosify-figure3-1110x735.jpg)
ロード テストを開始するには、アプリケーションの ターゲット URL を入力します。 HTTP メソッド (GET、POST、PUT、DELETE など)、 プロトコル (HTTP、HTTPS)、 リクエスト数、 期間、 ロードタイプ (線形、増分、ウェーブ)、 タイムアウト、 本文、 ヘッダー、 基本認証、 および プロキシ 設定を選択できます。 次の値を選択しました。
リンク先: | https://testserver.ddosify.com/account/register/ |
方式: | 投稿 |
議定書: | ティッカー |
要求数: | 100 |
期間: | 5 |
負荷タイプ: | リニア |
タイムアウト: | 10 |
体: | {"ユーザー名": "{{_randomUserName}}", "email": "{{_randomEmail}}", "password": "{{_randomPassword}}"} |
ヘッダー: | User-Agent: DdosifyDockerExtension/0.1.2Content-Type: アプリケーション/JSON |
この構成では、ターゲット URL に 100 個の要求を 5 秒間送信します (図 4)。 RPS は 20 です。 ターゲット URL は、本文パラメーターを使用して新しいユーザーを登録するために使用されるテスト サーバーです。 本文のユーザー名、電子メール、およびパスワードに動的変数(ランダム)を使用しています。 動的変数 の詳細については、Ddosify のドキュメントを参照してください。

次に、[ ロード テストの開始 ] ボタンをクリックしてロード テストを開始します。 結果がUIに表示されます(図5)。
![- DDOSIFYフィギュア5 [ロード テストの開始] ボタンをクリックして、ロード テストを開始します。 結果はUIに表示されます。 このスクリーンショットでは、失敗した実行と成功した実行 48 ユーザーが作成した実行のリストが表示され、サーバーは 32 要求に応答しませんでした。](https://www.docker.com/ja-jp/app/uploads/2023/03/ddosify-figure5-1110x747.jpg)
テスト結果には、次の情報が含まれます。
- 48 件の要求でユーザーが正常に作成されました。 応答コード: 201
- サーバーとのユーザー名と電子メールが重複しているため、20 件のリクエストでユーザーを作成できませんでした。 応答コード: 400
- タイムアウトのため、32 個の要求でユーザーを作成できませんでした。 サーバーは10秒以内に応答できなかったため、タイムアウト値を増やすか、サーバーを最適化する必要があります
ロード テストの結果を保存することもできます。 [ レポート ]ボタンをクリックして、結果をPDFファイルとして保存します(図6)。
![- DDOSIFYフィギュア6 結果をPDFファイルとして保存するためにクリックする[レポート]ボタンを示すスクリーンショット。](https://www.docker.com/ja-jp/app/uploads/2023/03/ddosify-figure6-1110x735.jpg)
結論
この記事では、Ddosify Docker 拡張機能をインストールし、Docker デスクトップからアプリケーションのロード テストをすばやく開始する方法について説明しました。 テストサーバーで5秒間100リクエストのランダムなユーザーを作成しましたが、タイムアウトのためにサーバーがすべてのリクエストを処理できないことがわかりました。
Ddosifyについてサポートが必要な場合は、 GitHubリポジトリ で問題を作成するか、 Discordサーバーに参加してください。