ベジタリアンテストの例を取得する簡単なチュートリアル


負荷テストは、信頼性の高いAPIやアプリケーションを解放する重要な部分です.菜食主義の負荷テストは、アプリケーションがうまく定義された負荷の下で動作することを自信を与える.このポストでは、いくつかのGETリクエストの例を使用して、負荷テストのためにVegassaを使用する方法について説明します.それがちょうど行くバイナリであるので、あなたが考えるより、セットアップして、使用するのが非常に簡単です、始めましょう.

負荷テストとは


平文での負荷テストは、現実世界のようなシナリオでアプリケーションの動作を決定するためにいくつかの同時リクエストをシミュレートすることによってアプリケーションをテストすることを意味します.基本的に、それはどのようにアプリケーションが複数の同時ユーザーがアプリケーションを使用しようとすると応答するかをテストします.

There are many ways to load test applications/APIs and Vegeta is one of the easiest tools to perform load testing on your APIs or applications.


一度書いたことがあるfast and not so fast test , それはテストについてもっと読むための良いポストです.

必要条件


主な話題に飛び込む前に、いくつかの前提条件を見てみましょう.
  • コマンドライン( CLIアプリケーションのインストールと実行)を使用すると良いです.
  • アプリケーション/APIはサーバー上で展開されます.ローカルテストはあまりにも洗練されていますが、彼らはどのようにサーバが負荷に振る舞うかについての正確な画像を与えていないかもしれません.
  • あなたがロードテスト(いくつかの使用経験があります)locust or Jmeter 過去に)
  • 選択肢と理由


    負荷テストを複数の方法で行うことができますが、負荷テストのための多くの異なるsaasも.それでもなお、ローカルにインストールされたツールは、アプリケーションやAPIをロードする素晴らしい方法です.使いましたLocust 過去に.セットアップと実行は簡単で簡単にはないとしてVegeta .
    もう一つのオプションはJMeter . Apache JMeterはまた、その概念を知っていると急な学習曲線を持って変換する完全に機能負荷テストツールです.

    Vegeta is a go-lang binary (and library) so installing and using it is a breeze. There are not many concepts to understand and learn.


    まず最初に、URLを提供し、どのように多くのリクエストを与える場合は、URLをヒットする必要があります.ベジタリアンは、周波数が提供されているURLをヒットし、簡単に理解できるグラフでHTTP応答コードと応答時間を与えることができます.

    The best thing about Vegeta is there is no need to install python or Java to get started. Next, let’s install Vegeta to begin Vegeta load testing.


    ベジタザインストール


    ベジタリアンが定義する公式の方法を見てみましょう.

    Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a command-line utility and a library.


    Vestaでロードテストを開始する最も簡単な方法は、そのGithubから正しい実行可能ファイルをダウンロードすることですreleases ページ.書き込み時、現在のバージョンはV 12です.8.3 .

    Linuxでインストール


    64ビットのLinux上にあるならば、以下のコマンドを使ってVegaを作ることができます.
    cd ~/downloads 
    wget https://github.com/tsenart/vegeta/releases/download/v12.8.3/vegeta-12.8.3-linux-amd64.tar.gz 
    tar -zxvf vegeta-12.8.3-linux-amd64.tar.gz chmod +x vegeta ./vegeta --version
    
    任意のパスからベジタザを実行したい場合は、LN - S ~/Download/Vessa ~/bin/Vegigaのようなコマンドを実行するパスにシンボリックリンクを追加することができます.

    Macでインストール


    また、次のコマンドを使用してMac上でベジタザをインストールすることができます.
    brew update && brew install vegeta
    
    すでにあなたのマシンとgobinにあなたのパスにインストールされたLang Langを持っているならば、あなたはあなたのベジタリアンテスト旅行を始めることを試みることができます:
    go get -u github.com/tsenart/vegeta
    
    正しくインストールされているかどうかを調べます.
    vegeta --version
    
    表示されるバージョン番号が表示されます.

    負荷テストコマンド


    ベジタロードテストツールを使用するには複数の方法があります.高速分析のためのコマンドラインで出力を取得する最も簡単な方法の一つです.最初のベジタリアンテストコマンドを実行するには、次のコマンドを実行します.
    echo "GET http://httpbin.org/get" | vegeta attack -duration=5s -rate=5 | vegeta report --type=text
    
    それで、ちょうどここで起こったこと?
  • この場合、URLをエコーしましたhttpbin.org/get そして、我々は菜食主義の攻撃を通してそれを通過しました
  • Vegassaの攻撃は、5秒のために1秒あたり5リクエストでベジタロードテストを実行した主なコマンドです
  • 最後に、しかし、同様に重要なコマンドを実行するVegaレポートは、テキストとして攻撃のレポートを表示するために取得されました.
  • 以下のサンプル出力を見ることができます.

    Vegassaロードテストツールは、5つのRPSで5秒以上広がる25の要求の攻撃を走らせました.最小応答時間は240 ms,最大値は100 %成功率510 msであった.これはすべてのリクエストが200として戻ったことを意味します.さらに、よりグラフィカルな出力を見る方法を見てみましょう.

    グラフィカル出力を用いた負荷試験


    ベジタロードテスト結果の別の表現は、グラフを理解しやすいです.以下のコマンドでグラフ出力を得ることができます.
    cd && echo "GET http://httpbin.org/get" | vegeta attack -duration=30s -rate=10 -output=results-veg-httpbin-get.bin && cat results-veg-httpbin-get.bin | vegeta plot --title="HTTP Bin GET 10 rps for 30 seconds" > http-bin-get-10rps-30seconds.html
    
    負荷試験のために野菜をどのように使うか分析してみようhttpbin.org こちら
  • 私たちはCDコマンドでユーザーホームに行きました
  • それから、我々は反響することによってVegassa攻撃のためにURLを設定しますhttp://httpbin.org/get
  • このステップは、30秒間の10秒間のリクエストで「アタック」(A . A .負荷テスト)のHttpbinサーバが30秒持続したとき(30秒の合計300リクエストで)、私たちは、結果として出力をしたいと思っています.ビンファイル
  • 今、この結果は簡単に読むことができないバイナリのようですので、次のことは、このバイナリファイルの内容をcatで読み、HTMLファイルを取得するために空想的なタイトルとファイル名を持つベジタプロットに渡されます
  • 作成したHTMLファイルを開くと、以下のようなHTMLファイルが表示されます.

  • それで、我々は300の要求を送りました、そして、それらのすべては200で戻ってきました.最速応答時間の1つは234ミリ秒であった.これにより、HTTP Binが簡単に30秒で10リクエストを扱うことができます.

    I would advise you to not try it many times, HTTPBin.org might block your IP thinking you are DDOSing their system.


    一般的に、独自のサービスをテストするためのベジタザを使用する方法のアイデアを得る.

    私のサービスは認証トークンを使います


    さて、すべてのサービスはすべてに開くことはありません、大部分はJWT または他の方法を認証し、ユーザーを承認する.このようなサービスをテストするには、以下のコマンドを使用できます.
    cd && echo "GET http://httpbin.org/get" | vegeta attack -header "authorization: Bearer <your-token-here>" -duration=40s -rate=10 -output=results-veg-token.bin && cat results-veg-token.bin | vegeta plot --title="HTTP Get with token" > http-get-token.html
    
    この例では、上記のパターンと同じパターンを使用していますが、ここでの主な相違点は、ベジタロードテストのために使用されるVegiga攻撃コマンドのヘッダーパームの使用です.

    If you want to test an HTTP POST with a custom body please refer to the Vegeta docs. It is best to test the GET APIs to know the load unless you have a write-heavy application/API.


    どのようにテストロード複数のURLですか?


    異なるHTTPメソッドによる複数のURLをテストすることも比較的簡単です.以下の例を見てみましょう.
    GET http://httpbin.org/get 
    GET [http://httpbin.org/ip](http://httpbin.org/ip)
    
  • テキスト出力の最初の例と同様に、このコマンドを実行します.TXTファイルが作成されました:Vegassa攻撃-期間= 5 s -率= 5 --目標=目標.テキストをレポートする
  • 次のようなテキスト出力が表示されます.

  • 我々がベジタザで複数のURLでロードテストをするのを見たので、微風です.Vegassa負荷テストを簡単にポストやプットのような他のHTTP動詞を行うことができます.ベジタリアンを参照docs .

    結論


    このポストは、ベジタザでロードテストにプライマーで表面をひっかいているようでした.ベジタロードテストを行うことができる多くの高度なものがあります.ベジタリアンは非常に複数の機会に便利です.私はかつて、Google Cloud機能とGoogle Cloud Runを同じコードでロードするために、菜食主義者を使用しましたtalk . 両方のサービスを比較するグラフは、違いの結晶をクリアしました.
    あなたが生産に行きたいアプリケーションまたはAPIをロードするテストは重要です.

    We once had to open up an API to a much higher load than it would normally get. Our load testing with Vegeta really helped us determine the resources and level of horizontal scaling the API would need to work without any issues.


    ベジタザのおかげで、別のツールやサービスを使用するよりもはるかに簡単だった.ハッピーロードとストレステスト!