ロード テストは、通常のトラフィック、大量、または突然のトラフィックスパイクの間に、Web サイト、Web アプリケーション、API のパフォーマンスを測定するうえで非常に重要です。 この記事は、継続的インテグレーション (CI) ツールを使用した Docker コンテナーを使用したロード テストについて理解するのに役立ちます。 ロード テスト アプリケーションへの Docker アプローチを使用すると、ユーザー間でテストを共有し、Docker コンテナーを使用してテスト環境を簡単にレプリケートできます。 Docker がどのようなものか、および CI を介してテスト アプリケーションをロードするために使用される Docker コンテナーとツールを使用して簡単に説明します。

 

ドッカーとは何ですか?

港湾労働者! チーム内でこの魅力的な言葉を聞いたり、テクノロジーブログを読んだりしたことがあるかもしれませんが、そもそも威圧的に聞こえるかもしれません。 Dockerは、 アプリのソースコードと すべての依存関係パッケージをDockerコンテナと呼ばれる形式でパッケージ化するコンテナ化プラットフォームです。 オペレーティング システムまたはシステム構成のオーバーヘッドを考えずに、アプリケーションがすべての環境で実行されるようにします。 これはクールではありません!

さらに、Dockerは、コンテナを使用してアプリケーションを構築、デプロイ、実行できる人気のある ツールです。 このため、アプリケーションは同じ動作でどこでも実行できます。 そして重要なことは 、Dockerはオープンソースです

 

ドッカーコンテナとは何ですか?

Docker コンテナーは、軽量でスタンドアロンの実行可能なソフトウェアパッケージで、アプリケーションが必要とするすべてのもの (コードベース、システム ライブラリ、システム ツール、設定) が含まれています。 コンテナーはコードとその依存関係をまとめ、アプリケーションを迅速かつ確実に実行できるようにします。

 

Docker を使用すると、開発者はアプリケーションが実行されるシステムを気にせずにコードを記述することに集中できるため、アプリケーションの移植性が高くなります。 ローカル マシンでアプリケーションを実行する方法は、運用環境に近いか、同じになります。

 

ドッカーの主な特長

  • 容易に拡張できる. 軽量のコンテナーにより、docker コンテナーは数秒でスピンアップでき、簡単に拡張できます。
  • 生産性を向上させます。 アプリケーション開発、環境設定のための技術的なオーバーヘッドを軽減します。 さらに、分離された環境でアプリケーションを実行し、リソースの使用を減らすのに役立ちます。
  • アプリケーション分離: 各アプリケーションは互いに独立して実行され、アプリケーションは独立して実行されます。
  • インフラストラクチャとメンテナンスのコストを削減する。 既存のプラットフォームを Docker に簡単に移行できるようにサポートし、自動化された方法で実行されるため、メンテナンス コストを削減できます。
  • 群れ. Swarm は、Docker コンテナーのクラスタリングおよびスケジューリング ツールです。 これにより、複数のホスト マシンに展開された複数のコンテナーを管理できます。
  • ルーティング メッシュ: これは、 トラフィックを コンテナーにルーティングして分散するのに役立ちます。

 

ドッカーの利点

  • Docker は、アプリケーションの移植性を有効にします。
  • Docker は、開発リリースサイクルを高速化します。
  • それはマイクロサービスアーキテクチャで輝いています。
  • Docker は、アプリケーションの分離環境を提供します。
  • Docker は、アプリケーションの水平スケーリングを高速かつ簡単に行えます。
  • リソースの効率的な使用が可能です。

 

ドッカー インサイド CI ツール

Docker の最大の利点は、依存関係の競合を心配する傾向がないことです。 たとえば、Golang 1.11で1つのプロジェクトを構築し、Golang 1.12バージョンで1つのプロジェクトをビルドする場合、Dockerはこれを分離して両方のイメージを作成し、競合することなく異なるコンテナで両方を並行して実行することもできます。 サーバー。 異なるバージョンで調理された画像はレジストリに保存でき、 Jenkinsなどの継続的インテグレーションツールの一部として使用できます。

Jenkins は、パフォーマンス テストまたは統合テスト用に構築された使用可能な Docker イメージを選択し、Docker イメージを最初からクッキングするためのオーバーヘッドが保存されるこの場合のサポートを提供します。 Docker レイヤーのキャッシュは、ここで多くの時間を節約します。 CI パイプラインの一部として、パフォーマンス テスト用の Docker イメージを作成する必要があり、このイメージは CI を使用して実行してアプリケーションのパフォーマンス テストを実行できます。 このステップを自動化することもでき、機能の追加や変更のたびにパフォーマンステストを実行して、 最近の変更によるパフォーマンスへの影響をベンチマークおよび保護できます。

 

パフォーマンス テストでの Docker の使用に関する制限事項

Docker には多くの利点がありますが、パフォーマンス テストを行う間は、いくつかの制限があります。

  • 同じマシン上で複数の Docker コンテナーを使用して負荷テストのシミュレーションを実行すると、実行中のサーバーの CPU を大量に消費し、テスト結果に影響を与える可能性があります。
  • Docker を使用したパフォーマンス テスト レポートには、十分なアプリケーションの詳細がありません。
  • パフォーマンス テストを実行しているホストの OS とコンテナーを微調整する必要があります。
  • Docker コンテナーは使い捨て可能なので、レポートの損失につながる可能性があります。

これらすべての制限から私たちを救うために、Jenkinsと簡単に統合できるLoadViewのようなソリューションを使用して、パフォーマンステストプロセスの自動化を支援できます。

 

ジェンキンスとのロードビューロードテスト統合

アプリケーションをテストするたびに、期待どおりに機能しているかどうかをテストします。 それがうまくいけば、アプリケーションの機能が正常に動作していることを示します。 しかし、現実の世界では、同じアプリケーションが何百人、あるいは何千人ものユーザーによって使用され、独自の合併症をもたらす可能性があります。 アプリケーションが、特に収益を生み出す上で重要な場合は、予想されるトラフィックの要求に対応できることを認識することが重要です。

明らかに、すべてのアプリケーションが収益を生み出すことに結びついているわけではありませんが、それにもかかわらず、 ユーザーエクスペリエンス は、訪問者をオンラインドアからオンラインチェックアウトカウンターに誘導するための大きな要因です。 そのプロセスの間にいつでも彼らの経験が遅い、遅れている、または単に混乱している場合、彼らはすぐに興味を失うでしょう。 彼らは、彼らの経験が悪い理由は、あなたのサイトやアプリケーションに同時に何千人もの ユーザーが いるからであることを気にしません。 彼らが知る限り、彼らはあなたのアプリケーションを使用している唯一の人だと思います。 信じがたいが、それは本当だ。 現実の世界と同じように、彼らは時々他の人と同じように列に並ばなければなりません。 ただ、彼らの待ち時間がシームレスで楽しく、長すぎないことを確認してください。

アプリケーションがそのようなトラフィックを処理できるかどうかを検証する必要があります。 そのため、変更や新機能の開発のたびに、Jenkinsと統合できるLoadViewプラグインを介して、アプリケーションの負荷テストまたはストレステストを実行できます。

次に、 Jenkins と LoadView の統合を使用してロード テストを実行するために必要な手順について説明します。

  1. LoadView ロード テスト シナリオを使用して Jenkins でビルドをテストする前に、負荷テスト シナリオを LoadView に追加する必要があります。
  2. ジェンキンスとの統合を開始するには、LoadView セキュリティ トークンとして使用する LoadView 一意識別子が必要です。
  3. LoadView で、[統合の追加] Web API の [アカウント統合の追加] で統合 UID > > を作成 > します。 この統合 UID をコピーします。

ドッカー統合 UID

 

  1. ストレス テストを設定するには、テスト シナリオ ID が必要です。 シナリオ ID は、次に示すように、シナリオのセットアップ ページで確認できます。

ドッカーロードテストシナリオ

 

ジェンキンスでの LoadView プラグインの設定

  1. Jenkins アカウントにログインします。
  2. Jenkins で、 資格情報の> 追加資格情報 LoadView >セキュリティ トークン (UID)に移動します。 資格情報を構成および検証します。
  • 種類: 読み込み表示セキュリティ トークン (UID)。
  • スコープ: グローバルに設定します。
  • ID: デフォルトのままにするか、一意の ID を指定します。
  • 説明: 他のテストとは別に設定する一意の説明を入力します。
  • UID: ロードビューアカウントから UID を入力します。 追加したら 、[UID の検証 ] を選択して、Jenkins が LoadView API にアクセスできることを確認します。

3. 次に、ジョブを選択し、[構成]

ドッカー・ジェンキンス

 

  1. > ビルド後のアクションのビルド ビルド アクション > の追加 ビルド後アクション > LoadView-Run ロード テスト シナリオに移動します。 ビルドの LoadView ストレス テスト設定を指定します。
  • 資格情報: 説明を使用して API キーを選択します。
  • シナリオ ID: ビルドで使用するテスト シナリオ ID を貼り付けます。 LoadView のシナリオ ページから ID をコピーします。
  • エラーしきい値: ここでは、特定のシナリオで許容できるエラーしきい値を設定できます。 割合がそのしきい値を超えると、Jenkins 内の障害としてフラグが付きます。
  • 平均時間: テスト中の 平均応答時間を 指定します。 エラーしきい値と同様に、制限を超えると Jenkins で失敗として記録されます。
  1. [ 保存 ]をクリックします。

テスト結果の表示:

テストが実行されると、ステータスが Jenkins コンソール出力にリアルタイムで表示されます。

ジェンキンスコンソール出力

 

ジェンキンスのパフォーマンス結果

 

ラップアップ: Docker アプリケーションのロード テスト

Docker には多くの利点がありますが、同じマシンで複数の Docker コンテナーを使用する場合に、サーバーで大量の CPU を消費するなど、負荷の大きい負荷を伴うロード テストを実行する場合に制限が生じることがあり、テスト結果に大きな影響を与える可能性があります。 Jenkins のような CI ツールと簡単に統合できる LoadViewのようなソリューションを使用すると、完全に管理されたクラウドから数千の同時接続を使用してロード テストを作成および管理できます。

この記事では、Docker と Jenkins を使用して クラウドベースのロード テストを実行する方法について簡単に紹介しました。 テスト シナリオの設定と LoadView によるロード テストの構成について詳しく学習するには、パフォーマンス エンジニアの 1 人と デモ を設定します。

今すぐLoadViewプラットフォームを試して、最大5つの無料テストを取得して開始してください。