2011年9月14日水曜日

Jmeterの使い方、JDBCについて

前回のJmeterについての記事では、簡単にHttpで接続して反応をみていました。

今回はJDBCを使う方法について記事を書きます。
JDBCをつかった動作の有名どころはMySQLあたりなのですが、会社の環境ならともかく、家の環境でちょちょいとMySQLサーバーをセットアップするのは面倒だったので、今回はSqlite3をつかったJDBC接続をためしてみたいと思います。
基本的なことはほかのと同じなので、MySQLやPostgreSQLなどで動作検証したい方の参考にもなると思います。

まず必要なものを準備します。JDBCで接続するためには、接続するのに利用するConnectorのライブラリをダウンロードする必要があります。

今回ぼくはSqlite3を利用するにあたって、XerialのSQLiteJDBCを利用しました。
対象サイトにいき、sqlite-JDBC-3.7.2.jarを入手しました。
サイトのここのhereのリンクからたどって
 sqlite-jdbc-3.7.2.jarを入手

入手したライブラリはjmeterのディレクトリのlib/extの中に設置しました。

今回はsqlite3を利用して、insertとselectの動作をためしてみようと思います。
とりあえずcreate table test(id integer, name varchar(16));
を実行して、あらかじめデータを扱うためのデータベースファイルとテーブルを作成しておきました。
作成するときにこちらのサイトを参考にしました。

ここまでできたらJmeterの設定をすすめます。
今回必要になるものはJDBC Connection ConfigurationとJDBC Requestのこの2つです。
こんなテスト計画を作成してみました。
やることはSelect * from test;の全件検索を2回とInsert into test values(4, "myself");
(入力データはなんでもいいのですが)の挿入を1回を試行するだけです。

各要素の中身はJDBC Connection Configuration
jdbcの設定の部分 jdbc:sqlite:適当なDBファイルのアドレス
Driver classはXerialのサイトのSample.javaの記述からorg.sqlite.JDBCなのでそれを登録。

あとはVariableNameに適当な名前(今回はsqlite)を追加する。
これが入力すべき事項です。

続いてJDBC Requestのサンプラーの部分
VariableNameに先ほどのsqliteをいれること。
Queryの種類にあわせてQueryTypeを変えておくことこの2点だけ注意です。
Insertの例
 Selectの例

あとは、サンプリングの結果用のビューを適当につけます。今回はとりあえず「結果をツリーで表示」をセット。

試行回数を1回1ループにして実行
結果はこんな感じになります。
もともといれてあった3つの要素に、mysqlが4番として追加されました。

さて、これでMySQLだろうがSqliteだろうがProgreSQLだろうが、JDBCのドライバさえ入手してしまえば、Jmeterで負荷テストができるようになったわけです。

次は、Jmeterで呼び出した結果を取得して、それを次のサンプリングのときにパラメーターとして使う方法でも書こうかな。
パラメーターがつかえるようになると、いろいろと複雑な処理が書けるようになりますからね。
Httpでアクセスして得た情報を元に、DBに問い合わせをおこなって、さらに結果を元に、特定のページにアクセスするとかできるようになります。

ではでは〜

0 件のコメント:

コメントを投稿