【Apache JMeter】レスポンス情報が文字化けする場合の対応方法

「Apache JMeter」を使用して対向サーバのリクエスト/レスポンスを確認していたのですが、どうしてもマルチバイト(今回の場合は日本語)で文字化けの現象が発生しました。

対向サーバ側の文字コード設定に誤りがあるのかな?と考えたりもしましたが、ブラウザなどでアクセスした場合は、文字化けが発生していない状態で取得できるため、「Apache JMeter」の問題と考えました。

今回は、「Apache JMeter」でレスポンス情報の文字コードとしてどの値が使用されているのかと設定方法についての紹介になります。

環境

  • OS:Windows 10
  • Apache JMeter:3.3

文字化けが発生する原因について

原因として、「Apache JMeter」ではデフォルトの文字エンコードが「ISO-8859-1」となっていたため、文字化けが発生していました。

レスポンス情報のデフォルトエンコードについては「jmeter.properties」ファイルに記載されています。

# The encoding to be used if none is provided (default ISO-8859-1)
sampleresult.default.encoding=ISO-8859-1 

ファイルを確認する場合は、「インストールディレクトリ/bin/jmeter.properties」にファイルがあります。

文字化けを解消するための方法について

文字化けを解消するための修正方法として、以下の2つを見つけることができました。それぞれの方法を紹介します。

  • デフォルト文字コードを変更する方法
  • テスト毎に文字コードを変更する方法

デフォルト文字コードを変更する方法

レスポンス情報のデフォルト文字コードを設定します。設定方法は「jmeter.properties」を修正する方法になります。

ファイルは「インストールディレクトリ/bin/jmeter.properties」にあります。ファイルから「sampleresult.default.encoding」を検索して以下の通り修正します。

sampleresult.default.encoding=UTF-8 

修正することでデフォルト文字コードを「UTF-8」に変更することできます。

設定後は再起動が必要なため、再起動後にテストを実施してレスポンス情報を確認してます。

テスト毎に文字コードを変更する方法

設定ファイルの「jmeter.properties」を修正しない方法になります。

テスト内容に「テスト計画」 > 「追加」 > 「後処理」 > 「BeanShell PostProcessor」 を追加して、文字コードを設定します。

作成した設定の「Script」に以下の値を設定します。

prev.setDataEncoding("UTF-8") 

設定後の再起動は不要なため、再度、テストを実施してレスポンス情報を確認してみてください。

まとめ

レスポンス情報の文字コードを設定する方法を2つ紹介しました。

「Apache JMeter」でマルチバイト(日本語など)のレスポンス情報を確認できるようになるため、テスト時などに有効に活用してみてください。

knowledge
スポンサーリンク
fumidzuki