イナゴ圧力テストの使用の概要とトークン検証情報インターフェイス圧力テストの必要性

イナゴの実行を開始します

  1. 方法1:Webを起動し、Webを介してパラメーターを設定します

    1)Scriptsディレクトリに入り、locust -f ****。py--host = http://0.0.0.0:0000を実行します(PS:-fの後に実行する.pyファイルの名前が続きます- -ホストテストhttpサービスのIPとポート)

    2)ブラウザを開き、ローカルアクセスの場合は、次の図に示すようにhttp:// localhost:8089 /と入力します(PS:シミュレートするユーザー数:シミュレートされたユーザーの総数、ハッチ率(ユーザースポーン/秒):毎秒開始仮想ユーザー数、スウォーミング開始:イナゴスクリプトの実行)

    最初の入力ボックス:同時に実行したい人の数
    2番目の入力ボックス:初期化された仮想ユーザーの割合
    たとえば、次の図は、システム上の1000人の仮想ユーザーのストレステストをテストすることを意味します。最初は10人/秒でしたが速度が1000に上がり始めました
    ここに画像の説明を挿入

    「StartSwarming」をクリックすると、ストレステストを行うサービスのストレステストを開始できます。

  2. 方法2:テストパラメータを入力し、DOSコマンドを使用してコマンドを実行します

    1. テストを開始します。dosはScriptsディレクトリに入り、locust -f ****。py--csv = onetest --host = http://0.0.0.0:0000 --no-web -c10 -r10 -t2( PS:-Fは実行するpyファイルの名前、-csvは生成されたレポートの名前、-hostはテストされたhttpサービスのIPとポート、-no-webはWebの起動を必要としない、-cは仮想ユーザーの数、-rは1秒あたりの起動を設定します仮想ユーザーの数、-tは実行時間を設定します)

    2. レポートの表示:テストが終了したら、Scriptsディレクトリに入り、onetestファイル名で始まる.csvテストレポートを生成します。

イナゴ試験結果の野外分析

ここに画像の説明を挿入

  1. タイプ:要求タイプ、つまり、インターフェースの要求メソッド。
  2. 名前:リクエストパス;
  3. リクエスト:現在完了したリクエストの数。
  4. 失敗:現在の失敗の数。
  5. 中央値:応答時間の中央値、つまり応答時間の50%が、ミリ秒単位でこの値の範囲内にあります。
  6. 平均:ミリ秒単位の平均応答時間。
  7. 最小:最小応答時間(ミリ秒単位)。
  8. 最大:最大応答時間(ミリ秒単位)。
  9. コンテンツサイズ:要求されたすべてのデータの量(バイト単位)。
  10. reqs / sec:1秒あたりに処理されたリクエストの数、つまりQPS。

イナゴは、トークン検証タイプのインターフェイスのパフォーマンステストを実行します

#coding=utf-8
import csv,os,time
from locust import HttpUser,TaskSet,task
class OrderDetails(TaskSet):

    @task
    def Login(self):
        LoginData = {
    
    "username": "15650199152", "password": '111111'}
        response = self.client.post("/api/v4/user/login", data=LoginData).text
        #print(response)
        self.dic = {
    
    }
        self.dic = eval(response)
        #print("self.dic =",self.dic)
    @task
    def Paycheck(self):
        PaycheckHeaders = {
    
    "token": self.dic["data"],
                       "x-client-hash": "kJVQzkkJ2metJnt8EZZJdm5jGgMhDM7uPyIx9Pkn",
                       "x-csrf-token": "3VSFMIP1vhIG7DyMCnRhUWwZ6zrEmbRq3jKS3o0w",
                       "x-requested-with": "XMLHttpRequest"}
        PaycheckData = {
    
    "order_sn":"1004202012151003065921"}
        PaycheckResponse = self.client.post("/api/v4/trade/paycheck",data = PaycheckData,headers = PaycheckHeaders).text
        #print(PaycheckResponse)

class WebSiteUser(HttpUser):
    host = "https://XXX.XXX.XXX" # 压测域名
    tasks = [OrderDetails]
    min_wait = 2000
    max_wait = 5000

上記のコードと同様に、最初にログインインターフェースを呼び出して戻り値からトークンを取得し、次にトークン情報を次のインターフェースに渡します。トークン検証情報を必要とするインターフェースは、圧力テストに使用できます。

おすすめ

転載: blog.csdn.net/zhuan_long/article/details/111194828