- JMeterでCSVファイルで一覧化しているIDリストを読み込み、APIリクエストを繰り返し実行したかったので、その方法を個人用にメモしておく。
テスト用API
-
パスパラメータに指定したユーザーIDをそのまま取得結果として返却するAPI
-
コード※Python/FastAPI製
import uvicorn from fastapi import FastAPI import uuid import datetime app = FastAPI() @app.get("/v1/users/{user_id}") def users(user_id): user = { "user_id":user_id, "time":str(datetime.datetime.now()) } return user if __name__ == "__main__": uvicorn.run(app, port=8000, loop="asyncio")
テストデータ
-
user_list.csv
user_id ABCDE12345 FGHIJ67890 XXXXX98765
設定手順
-
Thread Group に While Controllerを追加(Add -> Logic Controller -> While Controller)
-
Wihle controller の Conditionに以下を設定
${__javascript("${user_id}" != "",)}
※変数user_idが空でない間繰り返す
-
Wihle controller 配下にCSV Data Set Configを追加(Add -> Config Element -> CSV Data Set Config)
-
CSV Data Set Configを下記のように設定
-
Wihle controller 配下にHTTP Requestを追加(Add -> Sampler -> HTTP Request)
-
HTTP Requestを下記のように設定
動作確認
-
テスト用API起動
uvicorn main:app --reload --host 0.0.0.0 --port 8000
-
Jmeter実行
※以下のようにuser_list.csvにあるユーザーID分APIが実行される。