HTTPリクエストでJMeter JDBCリクエストから応答を使用する方法
-
21-12-2019 - |
質問
これが私の状況です:
私はこれをやりたい:
私は、応答が404のHTTPステータスコードであるかどうかを確認するためにHTTPリクエストを使用してヒットしたいMySQLデータベースにURLのリストがあります。
私はこれをしました:
- jdbc config要素を追加および設定した。
- JDBC要求サンプラーを追加および設定した。基本的に8列のテーブルを返すSELECTステートメント。 JDBC要求の結果がこれらの変数名で識別できるように、「変数名」フィールドに8つのコンマ区切り変数を提供しました。
- 'サーバ名またはIP'フィールドに$ {url}のいずれかを使用するHTTPリクエストサンプラーを作成しました。
- JDBCリクエストに「ファイル」リスナーへの応答を追加します。これにより、「.plain」と型のファイルが作成され、CSVではなくなります。それがCSVだったので、CSVデータ・セット設定を作成することによってCSVファイルを利用した可能性があります。だからこの試みは失敗しました。
- 上記の試みでファイル名を強制することを試みました。「c:\ jmetertest \ data.csv」を使用しようとしました。しかし、 'C:\ JMetertest \ Data.csv1.plain'という名前の新しいファイルを作成します。この試行は失敗しました。
-
URL列を$ {url_1}として参照しようとしました。動いた。しかし、結果は結果ツリーでは、結果セットの最初の行のみからURLのみをすべての要求に行くことが現在、すべての要求が行われていることです。これが上記の$ {url_1}で指定された行番号 '_1'が原因であることがわかります。誰かが「_1」をループスルーする変数にパラメータ化する方法を提案できる場合(おそらく 'counter'要素を使用して)。参照名 'LoopCounter'でカウンタ設定要素を作成しました。 HTTPリクエストの[サーバー名]フィールドにこれを使用しました:
$ {URL _( "$ {LoopCounter}")}
JDBC要求は完全に機能していますが、一時張りの行でテーブルを返しますが、これに関する問題は、HTTPリクエストサンプラーがJDBC要求結果から変数を拾わないことです。 HTTPリクエストは、[結果ツリーの表示]:
のようになります。GET http://${url}/
.
私はこれらの解決策を試しました:
しかし今私のhttpリクエストはラメラ:
GET http://${url_("${loopCounter}")}/
.
これはうまくいきませんでした。
ソリューション3は、行番号のパラメータ化を解決できる場合にのみ、より切断可能に見えます。 私はJMETERプラグインの提案にも開かれています。 私が行くように試してみる他の何かを更新します。
p.S。とにかく私の質問が明確でないかどうか私に知らせてください。
解決
HTTPサンプラーをforeachコントローラ(親)でラッピングしようとしました。コントローラの変数は、JDBCサンプラから取得したURL変数です。
また、foreachの出力変数は、HTTPサンプラーで使用する変数になります。
それは各変数をインデックスの先頭から最後まで反復し、毎回サンプラーを実行します。
他のヒント
「ファイルの返信をファイルの保存」リスナーで、「サフィックスを追加しない」を選択します。これら2つのオプションを確認すると、正確なログファイル名が正確になります。