イナゴの実行を開始します
-
方法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:テストパラメータを入力し、DOSコマンドを使用してコマンドを実行します
-
テストを開始します。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は実行時間を設定します)
-
レポートの表示:テストが終了したら、Scriptsディレクトリに入り、onetestファイル名で始まる.csvテストレポートを生成します。
-
イナゴ試験結果の野外分析
- タイプ:要求タイプ、つまり、インターフェースの要求メソッド。
- 名前:リクエストパス;
- リクエスト:現在完了したリクエストの数。
- 失敗:現在の失敗の数。
- 中央値:応答時間の中央値、つまり応答時間の50%が、ミリ秒単位でこの値の範囲内にあります。
- 平均:ミリ秒単位の平均応答時間。
- 最小:最小応答時間(ミリ秒単位)。
- 最大:最大応答時間(ミリ秒単位)。
- コンテンツサイズ:要求されたすべてのデータの量(バイト単位)。
- 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
上記のコードと同様に、最初にログインインターフェースを呼び出して戻り値からトークンを取得し、次にトークン情報を次のインターフェースに渡します。トークン検証情報を必要とするインターフェースは、圧力テストに使用できます。