見出し画像

OHSの負荷テストをJMeterで実施したい(入門ガイド?)実践を通して学ぶ負荷テストの基礎

こんにちは、nishiです!!
今回は、OHSを構築しているのでその性能テストを行いたいのですが、性能テストツールとして広く使われているApache JMeterの使い方について、実際に使いながら学んだことを共有したいと思います。


1. JMeterとは?

Apache JMeterは、Webアプリケーションの負荷テストや性能測定を行うためのオープンソースツールです。主な特徴として:

  • GUIベースの操作が可能

  • 様々なプロトコルに対応(HTTP、HTTPS、FTP、データベースなど)

  • 無料で使用可能

  • 拡張性が高い

2. インストール手順

必要な環境

  • Java 8以上がインストールされていること

インストール手順

  1. Apache JMeterの公式サイトからバイナリファイルをダウンロード

  2. ダウンロードしたzipファイルを解凍

  3. 解凍したフォルダ内の`bin`ディレクトリにある以下のファイルを実行

    • Windows: `jmeter.bat`

    • Mac/Linux: `jmeter.sh`

※僕はここで以下画面が出たのでjavaの用意ができてませんでした・・・

javaのインストール手順

ということで、javaをインストールします。

https://www.java.com/ja/download/

■ダウンロードします

■実行ファイルを実行

■インストールポチポチ

できました。

※改めてJMETER起動すると。。。

出た!

3. 基本的な使い方

言語の変更

まず英語だと読みづらいので、日本語にします。

Option>Chose language>Japanese を選択。

テストプランの作成

JMeterを起動した状態で、左上の”新規”をクリック。
これで”テスト計画”を作成できたはず。

スレッドグループの作成

左上の「テスト計画」を右クリックし、 追加 > Threads(Users) > スレッドグループ を選択。
これでスレッドグループ を作成できる。

HTTPリクエストの設定

・”スレッドグループ”を右クリック→追加→サンプラー→HTTPリクエスト

■以下の項目を設定

  • プロトコル:http

  • サーバー名またはIP:example.com(負荷検証を行うサーバ名やIP)

  • ポート番号:80(基本は80のはず。サーバーの設定に合わせる)

  • HTTPリクエスト:GET

  • パス:/sites/(今回はweb center sitesへのアクセスを通してテストするため)

スレッドグループの設定

スレッドグループでは、上で決めたHTTPリクエストを"何秒で何回送るか"といったことを設定できます。
スレッドプロパティにある、
・スレッド数
・Ramp-Up期間(秒)
・ループ回数
が重要な要素ですね。

ここで各項目について説明入れておきます。

  • スレッド数

    • 「同時アクセスユーザー数」というイメージ

    • 例:スレッド数を100に設定すると、100人のユーザーが同時にアクセスする状況をシミュレートします

    • 現実世界での例:ECサイトで「セール開始時に100人が一斉にアクセスする」という状況に相当

  • Ramp-Up期間(秒)

    • 「設定したスレッド数に到達するまでの時間」です

    • 例:

      • スレッド数100、Ramp-Up期間20秒の場合 → 20秒かけて徐々にアクセス数を100まで増やします(約1秒ごとに5アクセス)

      • スレッド数100、Ramp-Up期間0秒の場合 → 100人が一斉にアクセス(急激な負荷)

    • 現実世界での例:

      • Ramp-Up期間20秒:「オンライン学習システム(授業開始時)の生徒のログイン状況」

      • Ramp-Up期間0秒:「コンサートチケット販売開始時に一斉アクセス状況」

  • ループ回数

    • 「各ユーザー(スレッド)が何回繰り返しアクセスするか」を指定

    • 例:

      • ループ回数1:各ユーザーが1回だけアクセスして終了

      • ループ回数10:各ユーザーが10回アクセスを繰り返す

      • 無限ループ:永続的に繰り返し(テストを手動で停止するまで継続)

    • 現実世界での例:「ユーザーが同じページを何度も更新する」や「複数のページを順番に見ていく」状況

レポート設定

結果の出力を設定できるのでまあどれでもよさそうですね。

  1. スレッドグループを右クリック→追加→リスナー→結果をツリーで表示

  2. スレッドグループを右クリック→追加→リスナー→統計レポート

  3. スレッドグループを右クリック→追加→リスナー→結果を表で表示

4. 実践:シンプルな負荷テスト

スレッドプロパティを以下のように設定

・スレッド数:100
・Ramp-Up期間(秒):1
・ループ回数:10

5. テスト実行と結果の確認

テストの実行

・緑の実行ボタンをクリック

という感じで結果がでました。

結果の分析

集計レポートでは以下の項目を確認できます:

  • サンプル数

  • 平均応答時間

  • エラー率

  • スループット

  • 受信KB/秒


・・・・・・・・・

てへペロ!!!

え~、正直ここからはよくわかりませんでした(てへペロ!!!

一応参考程度のメモだけのせときま~す(~_~;)

6. よくあるトラブルシューティング

  1. メモリ不足エラー

    • `bin/jmeter.bat`(または.sh)ファイルを編集

    • `-Xms1g -Xmx1g`のような設定を追加

  2. 証明書エラー

    • HTTPSの場合、証明書の設定が必要

    • JMeterのオプションから証明書をインポート

  3. タイムアウトエラー

    • HTTPリクエストの設定でタイムアウト値を調整

7. 応用テクニック

CSVデータの活用

  1. テストデータをCSVファイルに保存

  2. CSV Data Set Configを追加

  3. パラメータとしてテストデータを使用

変数の使用

  1. ユーザー定義変数の追加

  2. テスト中に変数を参照

まとめ

JMeterは非常に強力な負荷テストツールですが、基本的な使い方は意外とシンプルです。この記事で紹介した手順を参考に、まずは小規模なテストから始めてみることをお勧めします。

実際に使ってみると、GUIで直感的に操作できる点が非常に魅力的ですね。ぜひみなさんも試してみてください!


いいなと思ったら応援しよう!