LoginSignup
0
0

More than 1 year has passed since last update.

JMeterからDocker版 SQL Serverに繋ぐ

Posted at

この記事で行うこと

Javaなんもわからん

  • Dockerに建設したMicrosoft SQL Server 2019負荷テストをしたい
  • 負荷をかけるツールとしてJMeterを使いたい

今回は、JMeterからSQL Serverへ接続するところまでを行う。
まずは通信できるところまで。

実際に負荷をかけてみるのは次回!

検証環境

OSはWindows 11 Homeを使う。Not Mac...

Javaは1.8系らしい。この意味は知らない。

java -version
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
Java HotSpot(TM) Client VM (build 25.371-b11, mixed mode)

SQL Server 2019 コンテナ

DockerにSQL Serverコンテナが起動しているものとする。
※その過程についてはリンク先の記事を参照

  • SQLサーバの待ち受けポートは11433 ※1433ではない
  • saというユーザーがPassw0rdというパスワードでログインできる
  • TestDBというデータベースがすでに存在する

image.png

SSMSでログインしたキャプチャ)

JMeterを入手する

JMeterはSQLサーバーに対して、負荷をかけるためのツール
公式サイトに文字がたくさん並んでいて、いかにも老舗のツール感が出ている

Apache JMeter 5.5 (Requires Java 8+)

image.png

ZIPファイルを適当なところ(デスクトップとか)に展開する
展開すると、拡張子.zipが取れたフォルダーが1つ出来上がる

以後、apache-jmeter-5.5の中が作業場所となる

JMeterを起動する

apache-jmeter-5.5\bin\jmeter.batをダブルクリックすれば起動する

黒い窓が起動したあとに、JMeterが起動する
黒い窓にはログが表示されるので、邪魔にならないところに寄せておく

SQLサーバーへアクセスするためのライブラリ

apache-jmeter-5.5\libの中に.jar(Javaアーカイブ)ファイルを置く
.jarファイルはマイクロソフトのHPから入手できる

Java 1.8 に対応するライブラリは何?

こちらの対応表によると、52という数字が対応するらしい
では、Javaからデータベースへアクセスするためのライブラリ(JDBC)をダウンロードしよう

どの.jarを使えばいい?

JDBCを解凍すると、.jarファイルが2つあった!

  1. Microsoft JDBC Driver 7.0 for SQL Server\sqljdbc_7.0\jpn\mssql-jdbc-7.0.0.jre8.jar
  2. Microsoft JDBC Driver 7.0 for SQL Server\sqljdbc_7.0\jpn\mssql-jdbc-7.0.0.jre10.jar

まずはjre10を入れてみた

apache-jmeter-5.5\bin\jmeter.batをダブルクリックしてJMeter起動する
JMeter側でいろいろ設定して、いざ実行すると、黒窓に文字列がずらりと・・・ダメな感じ

image.png

黒窓:52が要るのに54を使ってないかい?」(意訳)

マイナス2する必要があるので、jre10 - 2 = jre8 に変更
apache-jmeter-5.5\libmssql-jdbc-7.0.0.jre8.jarを入れた --- jre10はゴミ箱へ

JMeterの設定

何はともあれ、まずは日本語化しておく

最初はTestPlanしか表示されていないので、右クリック「追加」をして部品を足していく

image.png

右クリック、追加、部品を探す・・・を繰り返すと、キャプチャのようなツリーがいずれ完成する

Thread Group

とりあえず適当な数字
あまりループすると終わらないので、まずは小さめの数字がよい

image.png

画像内の赤印部分は自分で変えるところ。他は最初から入力されている文字・数字のまま。

JDBC Request

JDBCコンフィグはcon1とする。コンフィグはこのあと作る。

クエリはSELECT @@VERSIONとする。
今回は、通信できていることを確認したいので、クエリはなんでもよい(から参考サイトと同じにした)

image.png

JDBC Connection Configuration

JDBCコンフィグはcon1とする。先につくった JDBC Request と合わせる。

  • Database URLはjdbc:sqlserver://localhost:11433;database=TestDB
  • JDBC Driver Classはcom.microsoft.sqlserver.jdbc.SQLServerDriver

ユーザーネームとパスワードは、sa/Passw0rd(Docker構築時に指定したもの)

image.png

いざ、実行!

緑色の三角マークを押せば、JMeterが動き出す

image.png

SQL Serverのログを確認する(通信できているか?)

SSMSにログインして、左のツリーから XEvent Profiler → Standard を選ぶ
JMeterを実行した結果(SELECT @@VERSION, JDBC Driverなど)が表示され
たしかにJMeterからDockerコンテナSQL Serverへアクセスしていることがわかる

image.png

まとめ

今回はJMeterが使える環境を整えて、SQLサーバーと繋がるところまで確認した

次回は実際に負荷をかけてみて、SQLサーバーがどう反応するかをみる

参考

糸冬了!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0