質問: JMeter負荷テストのシナリオ作成について教えてください。 現在 1. 会員登録 2. ログイン 3. その他API 1 4. その他API 2 5. その他API 3 ... 15個ほど。 のAPIを持つサーバ処理について負荷試験を行うためにシナリオを作成しています。 別端末からの同時アクセスを避けるためにHTTPヘッダにアクセストークン、ユーザIDを入れています。 ユーザIDは会員登録時にサーバから返却を行いヘッダに格納 アクセストークンなどはログインした時に乱数を返却し、DBサーバに登録。 以降はヘッダのアクセストークンとDBに登録しているアクセストークンが一致するかどうか、またはユーザIDが一致するかを見て不正対策を行なっている仕組みです。 ネットの情報を見つつ、返却値をJMeterの各変数に格納してデータを動的に取得して使うことは成功しました。 例えば上記のような仕組みで10スレッド、100秒、2ループで一度負荷テストを行ってみると、1人目は問題ないのですが ★会員登録 ★ログイン ★その他1 ☆会員登録 ★その他2 ☆ログイン ☆その他1 ...... ★は1人目のユーザ、☆は2人目だとします。 このような流れになった時に☆の会員登録が走った時に2人目のユーザIDがヘッダに格納されてしまい、★その他2でユーザ認証ができなくなってしまいエラーコードが返却され、負荷試験が失敗してしまいます。同様に途中で3人目が来たら2人目もエラーになって失敗となります。 そこで質問なのですが、HTTPヘッダをユーザ(スレッド)ごとに持たせることは可能でしょうか。 連番を実現するカウンタ機能には「ユーザで独立したカウンとをとる」といったチェックボックスがあるみたいですが、HTTPヘッダマネージャーにはそういった機能がなく、困っております。 有識者の方々、何卒ご確認よろしくお願いします。
回答: によれば、「別々のHTTPリクエストに異なるヘッダをつけたいといった理由がないなら、HTTP Header Manager が使える。」とあります。ということは、HTTP Header Manager はスレッドごとにヘッダをつけることはできないのでしょう。 HTTP Cookie Manager ならスレッドごとの値を扱えそうですが、なんだか Set-Cookie応答ヘッダのパーサを指定するようなUIなので、独自の応答ヘッダの値を独自の要求ヘッダに載せる、といったことは難しそうです。 HTTP Cookie Manager を改造するか、PostProcessorで応答ヘッダをパース → PreProcessor に渡して載せる、といった組み合わせで実現できるかもしれません。 **追記** PostProcessor に Regular Expression Extractor を使い、PreProcessor に HTTP Request Defaults を使うことで実現できました。 →