JMeterでHTTPSサイトをシナリオを記録する
以前、こちらの記事でJMeterのプロキシサーバ機能を使ってテストシナリオファイル(*.jmx)を簡単に作る方法を紹介しました。
HTTPSサイトだとシナリオが作れない?
そんなことはありません。作れます。
性能テストは最終的には本番環境で実施することになると思います。ロードバランサがきちんと負荷分散しているか確認する必要があるからです。
その場合、試験対象が本番環境となり、プロトコルもHTTPではなく、HTTPSになると思います。
HTTPSサイトのテストシナリオを作成しようとすると「この接続ではプライバシーが保護されません」というメッセージが出てしまい、JMeterのプロキシサーバを使ってテストシナリオが作れません。
これを解決するには、JMeterの自己証明書(オレオレ証明書)をインストールする必要があります。
JMeterのSSL証明書をインストールする
JMeterのプロキシサーバを起動した時に表示されるこのメッセージ。前回はHTTPサイトのシナリオ記録だったためスルーしましたが、HTTPSサイトのテストシナリオを作る時はスルーできません。
Root CA certificate ApacheJMeterTemporaryRootCA created in JMeter bin directory.
You can install it following instructions in Component Reference documentation.
Cretificate has a duration calidity of 7 days,
if the created one (see below) is newer then the last one you installed,
ensure you remove the old one and install the new one.
Please check the details velow when installing the certigicate in the browser.
ざっくり訳すとJMeterのbinフォルダの中にルート証明書があるからインストールしてね。但し有効期限は7日間なので、それを過ぎたらまた入れ直してね、とのことです。
では、さっそくやってみましょう
案内されたフォルダを見てみると、ApacheJMeterTemporaryRootCA.crtファイルがありますので、これをダブルクリックします。
証明書のインストールボタンを押します。
現在のユーザを選択して次へ進みます。たぶんローカルコンピュータでも行けると思います。複数のユーザで利用する場合はローカルコンピュータの方がよいでしょう。
自動ではなく、手動で「信頼されたルート証明機関」を指定します。
間違いないか確認して次へ進みます。入れる証明書ストアを間違えると効果がありません。
最終確認をして、間違いがなければ完了します。
なにやらセキュリティ警告が表示されて脅かされますが、これはどこかで拾ってきた野良証明書を入れたらアカンよーという警告です。今回のJMeterのものであれば心配はありません。
正しくインポートされると思います。
証明書はどこに入ったの?
ルート証明書がどこにインストールされたのかわからないと気持ち悪いっていう方もいらっしゃると思います。私もそうですし。Google Chromeであれば設定画面から確認ができます。
設定画面のセキュリティをクリックします。
証明書ダイアログが表示されたら、「信頼されたルート証明機関」タブを選択すると、さきほど投入したJMeterの証明書が追加されていると思います。
なんでアンダースコアが先頭についているのかと思ったら、頻繁に入れたり消したりするので、見つけやすいようにリストの先頭に表示するためですかね。こういう細かい心遣いが好きです。
これで準備完了です!!
あとはJMeterのプロキシサーバを使って、思う存分HTTPSサイトのシナリオを作ってください!
テストシナリオの記録が終わって、もう使わないという方はこの先をご覧ください。
JMeter証明書の消し方
JMeterの証明書はインストールしてから7日間しか有効ではないため、放っておいてもいいのですが、使わないものが残っているのが気になる方もいらっしゃると思います。私もそうですし。
さきほどの証明書ダイアログからJMeterの証明書を選択して、削除ボタンを押します。
警告が表示されますが、「はい」を選択して消します。
警告に表示されている通り、今回追加したJMeterの証明書以外を消さないように注意してください。
重要なことなのでもう一度確認が入ります。サブジェクトを再度確認してください。
まとめ
- JMeterのプロキシサーバー機能でHTTPSサイトのシナリオも作成できる
- プロキシサーバーを使って記録する間だけJMeterの証明書をインストールする必要あり
- 作ったテストシナリオを実行する時はプロキシサーバもJMeterの証明書も不要
- JMeterの証明書の有効期限はインストールから7日間
- 有効期限が切れたら一度消して新しく入れ直せばまた7日間延長できる
コメント
上記の手順でJMeter証明書をインポートしたのですが、インポート前と同じく「この接続ではプライバシーが保護されません」となります。
httpsサイトはオレオレ証明書を使用していますが、オレオレ証明書を使用している場合、追加で何か設定する必要はありますでしょうか。
JMeterでプロキシしない場合はエラーなく接続できています。
しかくさん
テストターゲットがオレオレ証明書の場合ですか、、
もしかするとそのケースだとなにか手順が足りないのかもしれません。
手元にその環境があれば検証できるのですが、、お役に立てなくてすみません