Apache JMeter Tips


JMeter の tips をまとめます。随時追加。

環境ごとに投げ先を切り替えたい

設定エレメント > ユーザー定義変数 を追加し、環境ごとに変数を定義しておく。使う環境以外は無効化して使う。

${変数名} で値を使用できる。

ベーシック認証を突破したい

設定エレメント > HTTP 認証マネージャ を追加し、基底 URL に対するユーザ名とパスワードをセットする。

セッションを維持したい

設定エレメント > HTTP クッキーマネージャ を追加する。

レスポンスから値を取得して利用したい

後処理 > 正規表現抽出 を追加する。以下はレスポンスヘッダに含まれているトークンを抽出している例。

${参照名} で値を使用できる。

CSV ファイルを使ってリクエストごとに変数を変えたい

設定エレメント > CSV Data Set Config を追加。

${変数名} で値を使用できる。

ランダム数列を使いたい

${__RandomString(10, ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789, val)} などとすれば良い。

  • 第一引数:文字列長
  • 第二引数:使用する文字
  • 第三引数:参照名(${参照名}とすれば、後続処理で値を参照できる)

CLI から実行したい

./apache-jmeter-5.4/bin/jmeter -n -t ./script.jmx -l ./log.jtl -e -o ./reports --forceDeleteResultFile

-n: CLI モード
-t ./script.jmx: スクリプトファイルの指定
-l ./log.jtl: ログの出力先を指定
-e -o ./reports: 結果レポートを html で出力してくれる
--forceDeleteResultFile: 既に結果ファイルがある場合、上書きする

詳細

CLI 実行結果をもとに、制御したい(パイプラインを失敗させるなど)

前項で結果レポートを出力していると、statistics.json が生成される。
エラーカウントやスループットなどが取得できるので、これを読み取って制御すれば良い。

jsonData=`cat ./reports/statistics.json`
errorCount=$(echo $jsonData | jq -r ".Total.errorCount")

if test $errorCount -ne 0 ; then
  echo "something wrong."
fi