1. ホーム
  2. データベース
  3. その他のデータベース

JMeterデータベースクエリ操作手順詳細説明

2022-01-17 07:18:08

ヒント

JMeterでMySQLデータベースに接続する方法については、すでに前回の記事で詳しく説明しました。データベース接続の設定は、比較的固定されたステップなので、ここでは繰り返しません。

この記事では、主に JDBC Request コンポーネントを使用し、クエリのためにデータベースに対してさまざまな操作を行う方法について説明します。

JMeterのクエリ文の手順。

  • テスト計画を追加します。
  • スレッドグループを追加し、スレッドグループの数を設定します。
  • 追加 JDBC Connection Configuration コンポーネントを使用して、データベース接続を設定します。
  • を追加します。 JDBC Request リクエスト、SQL文の記述、パラメータ化の使用。SQLリクエストを送信するスクリプトを実行します。
  • ビュー結果ツリーを追加し、結果を表示する。

1. パラメタライゼーションを実装するために "ユーザー定義変数" を使用する。

すなわち SQL Query パラメータ化された変数を使用する。

JMeterでは、"ユーザー定義変数"を設定できる場所が2箇所あります。

1つは、"Test Plan"画面で"user-defined variables"を設定することです。

1つは、configure要素に"user-defined variables"を追加することです。

テスト計画書」を例にとって説明します。以下はその図です。

(1) "テスト計画"画面で、"ユーザー定義変数"を設定します。

今回は、以下のようにカスタム変数User IDを追加しました。

(2)内 JDBC Request インターフェイスの SQL Query ${variable name} を参照してください。

  1. への参照を追加しています。 Varíable Name 対応するデータベース設定名を記入するのですが、これは JDBC Connection Configuration コンポーネントの Varíable Name に対応する。
  2. Query Type : 選択 Select Statement というのも、クエリSQL文は1つしか作っていないからです。
  3. でSQL文を書きます。 ${variable name} を使用して、パラメータ化された変数を参照します。

次の図のように

2. SQLクエリでパラメータを渡すためのプレースホルダーの使用

渡されたパラメータ値には定数と変数があります。

(1) 渡されたパラメータの値が定数である場合

2つの定数を渡す:ユーザーID=3、ユーザー名=孫悟空。

注意してください。

  1. プレースホルダー付きのSQL文を送る必要がある場合は Query Type : を選択する必要があります。 Prepared Select Statement /code .
  2. Parameter values パラメータ値や Parameter types パラメータタイプは、両方とも記入する必要があります(パラメータタイプは、テーブル設計構造におけるタイプと一致すれば十分です)。プレースホルダーが複数ある場合は、カンマで区切って複数のデータセットが必要である。
  3. SQLリクエストを送信する際、最初のパラメータは自動的に最初のプレースホルダに割り当てられ、以降、パラメータの記述順に注意して送信されます。

次の図のように

(2)渡されたパラメータの値が変数

つまり、プレースホルダが受け取った引数はパラメタライズド変数である。対応する定数の位置をとってパラメタライズド変数にするだけで、あとは上記と同じです。

次の図のように

このように、さまざまな形式のパラメタライズを利用することができます。パラメタリゼーションについては、前回の記事で詳しい説明があります。

3. 変数名の使用 パラメータ化

Variables names パラメータの目的は、SQL文のクエリからデータを変数に保存することです。一般に、クエリはいくつかのフィールドを返し、それを受け取るためにいくつかの変数が使われ、異なる変数はカンマで区切られます。

JMeterのウェブサイトに記載されている説明では、このパラメータに値を設定すると、SQL文が返したデータと返したデータの合計行数が保存されるとのことです。

例えば、SQL文が2行3列のデータを返した場合、そして Variables names が設定されます。 A,B,C とすると、以下の変数に設定されます。

A_#=2 # A列の行の総数
A_1=3 # A列の最初のデータ、すなわち1列1行目
A_2=4 # A列の2番目のデータ、つまり1列目2行目のデータ
B_#=2 # B列の総行数
[email protected]     # B列の最初のデータ、すなわち2列目1行目
[email protected]      # B列の2番目のデータは、2列2行目です。
C_#=2 # C列の総行数
C_1=Sun Wukong # C列の3列目、1行目のデータ
C_2=Piggy # セコンドA_# コンポーネントは、JMeterスクリプトの実行ですべての変数を表示することができます)

C_# 次の図のようなリクエストの結果です。

表示 ${A_#} を次の図に示します。

<イグ

上の図から、JMeterがデータベースクエリからのデータをスレッド変数に格納していることがわかります。

ヒント

${A_1} は最初の列のすべてのデータを表します。 Debug Sampler は、最初の列の行数を取得することができます。 JDBC Request 1列目n行目のデータが取得できる。 Variable names Debug Sampler も同様で、1列目と3列目のデータだけが必要な場合は、次のように書くことができます。 Debug Sampler と真ん中の JDBC Request を省略することはできません。

4、結果変数名パラメータ使用方法

このパラメータに値を設定すると、返されたすべての結果を保持するオブジェクト変数が作成されます。

(1) Debug Sampler コンポーネントインターフェイスの内容

での A で受信データの変数名を定義する。

次の図のように

(2) 結果を見る

サンプラーを追加する A_# をクリックすると出力が表示されます。( A_n コンポーネントは、JMeterスクリプトの実行ですべての変数を表示することができます)

B 次の図のようなリクエストの結果です。

表示 C を次の図に示します。

<イグ

(3)データ処理

上で見た結果セット、その中のデータをどのように活用するか?

を作成すればいいのです。 A,,C サンプラーを作成することもできますし , サンプラーを追加するか、あるいは、その下のレベルのポストプロセッサーを追加するかです。 JDBC Request コンポーネントを使用します。

後のインターフェイスのリクエストに提供するために必要な指定されたデータを取得するために、内部に以下のコードを記述してください。

オブジェクト内の特定のデータを取得するためのメソッド。 Result variable name

5. まとめ

上記では

Debug Sampler