Apache JMeterメモ
Website: http://jmeter.apache.org/
Apache JMeterを教えてもらったので、後で見返せるようにメモ。
Apache Software Foundationで開発されているオープンソースのJavaアプリケーション Webサーバーに対して複数のHTTPリクエストを送信し負荷をかけたり、JDBCを経由してデータベースサーバーに負荷をかけたりできる
基本的な流れ
起動
最新のzipバイナリをダウンロード・解凍。
$ cd apache-jmeter-3.0/bin $ java -jar ApacheJMeter.jar
スレッドグループ
リクエストを送るためのもの。 よく使うのはHTTP SamplerとJDBC Sampler.
- Host:
192.168.45.10
- Port: 80 (80の場合は省略可)
- Path:
/pukiwiki/
リスナー
負荷はもうかけられるが、結果を見るための設定がない。それがリスナー。
「結果をツリーで表示」と「結果を表で表示」をクリック。
- 結果をツリーで表示からは、リクエストや応答データが見れる
- 結果を表で表示は、ズラッと全部見たい時に便利
- Connect Time: 接続時間
- スレッド数1でループ回数を5とかにすると、keep-aliveが有効なおかげで2回目以降のリクエストのconnect timeが0になるのが確認できる。
- Connect Time: 接続時間
リスナーは何回も実行すると溜まっていくので、「ほうき」のアイコンの「消去」で掃除できる。
実行
「開始」ボタンを押したら開始出来る。
シナリオキャプチャ
ブラウザで操作を記録させて、シナリオを簡単に作ることができる。
HTTPプロキシサーバを追加
- Portは使っていない番号に設定 (ここでは8999)
- 除外するパターンを
.*.css.php.*
と最後にも.*
を付けているのは、クエリパラメータも含めるため
HTTPプロキシの設定
Chromeの「設定」>「詳細設定」>「プロキシ設定の変更」から、上で設定したポート番号を指定。
開始
「HTTPプロキシサーバ」>「開始」を押したら(ここで鍵がどうのこうのってメッセージが出たけどとりあえずOKで進めてみた)、Chromeを開いて検証したいようにブラウザで操作。
終わったら「HTTPプロキシサーバ」>「停止」
これで終わり。緑の「開始」ボタンをクリックすると実行してくれる。
その他
ユーザ定義変数
設定しておくと、次に127.0.0.1とかが出てきた時に、自動で ${PUKIWIKI_HOST}
とかを埋め込んでくれる。
あとでこの変数のvalueを変えるだけで済んで便利。
HTTPリクエストの詳細設定
「Advanced」>「全てのイメージとアプレットを繰り返してダウンロードする」を選択すると、そこのページのCSSや画像も全部ダウンロードしてくれる。
スレッドグループの設定
スレッド数やループ回数以外にもいくつかオプションがある。 例えば、60秒間負荷をかけたい場合は、ループ回数を無限、持続時間を60にすればいい。
MySQL(MariaDB)の計測
Setup
CentOS7にMariaDBを入れる
$ yum update $ yum install mariadb mariadb-server $ systemctl start mariadb $ systemctl enable mariadb
参考: 【jmeter】【MySQL】MySQLからデータを取得し、変数に格納する - たんたんめん日記
MySQL :: Download Connector/J から zipパッケージをダウンロードして展開、 mysql-connector-java-5.1.40-bin.jar
を apache-jmeter-3.0/lib
に入れる。
1つのRDBに負荷をかける
うまくいくとこのようになる。権限周りでちょっとはまりましたが、「結果をツリーで表示」からレスポンスをみて修正。
複数のDBに対してロードバランス
レプリケーションをしていて、マスタや複数のスレーブに対してリクエストを分散させたい場合、
jdbc:mysql:loadbalance://<FQDN or IP address>:<port>,<FQDN or IP address>:<port>/<DB name>
JMeter Server
複数台のPCからリクエストを投げる。 下の記事の通りやったら問題なく動いた。 zipパッケージの中に jmeter-serverとかも最初から入ってて、j
複数台のJMeterサーバで負荷試験を行う方法 | Check!Site
テスト計画の保存
ファイルメニューからテスト計画を保存できる。 XML形式で保存されているので、構造もそれほど複雑ではない。 プログラムとかExcelマクロで生成できそう。
キャプチャ
JMeter Proxy Serverを経由することで、実際のユーザ−の行動からリクエストをキャプチャーしたりできる。
CUI
試してないけど、 *.jmx
で保存して bin/jmeter.bat
から実行出来るらしい。
自動化するならこっちのほうが大事そう。
おわりに
気が向いたら今度、グラフとかレポートがリッチらしいGatlingも使ってみたい。
- 作者: Brendan Gregg,西脇靖紘,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/02/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る