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

「Apache JMeter」でレスポンス情報がマルチバイト(今回の場合は日本語)の文字化けした場合の対処方法を2つ紹介します。

スポンサーリンク

概要

「Apache JMeter」を使用していて、対向サーバからのレスポンスの結果を確認していて、マルチバイトの文字化け現象が発生したことはないでしょうか。

最初は、対向サーバ側でのレスポンスの文字コード設定に誤りがあると考えて、レスポンスのHTTPヘッダ情報の文字コードを確認して問題ないことを確認しました。また、ブラウザ、cURLなどでアクセスして確認した場合は、文字化けが発生していない状態で取得できることがわかりました。

このため、今回の問題は、「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」に変更することできます。

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

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

テスト毎に文字コードを変更する方法は、テスト内容に「BeanShell PostProcessor」を追加することです。

テスト内容の「テスト計画」を右クリックして、「追加」 > 「後処理」 > 「BeanShell PostProcessor」 を追加します。

追加した「BeanShell PostProcessor」の「Script」に以下の値を設定します。

prev.setDataEncoding("UTF-8") 

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

まとめ

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

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