プライベートな連絡先の最初の情報
送料メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
正規表現ユーザーパラメータ(RegEx User Parameters)は、ユーザーが正規表現に基づいて応答データから値を抽出して適用し、それらの値をパラメータとして後続のパラメータに渡すことを可能にするプリプロセッサ(Pre-Processor)です。HTTPリクエストまたは他の場所が必要です。この機能は、動的コンテンツ、セッション ID、トークンなどを処理するための柔軟性が高く、自動テスト スクリプトを実装するための重要なコンポーネントです。
SpringBoot を使用して次のインターフェイス コードを記述します。
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
String response = "{"total":2,"data":[{"id":123,"name":"John Doe","email":"[email protected]","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"[email protected]","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return response;
} else {
return response;
}
}
次に、次のスクリプトを書きます
スレッドグループ: デフォルトのまま
HTTP リクエスト 1: プロトコル http、サーバー名または IP127.0.0.1、ポート番号 8091、メソッド POST、パス/ログイン、コンテンツ エンコード utf-8、メッセージ本文データ
{
"username": "admin",
"password": "password"
}
正規表現の抽出器:设置的参数为引用名称var,正则表达式"id"😦.?)、"名前":"(。?)"、"email" (サンプル コードの内容からわかります)、目的は ID と名前を抽出することです。一致する番号は -1 に設定され、デフォルト値は NotFound です。
この時点で、まず HTTP リクエスト 2 と正規表現ユーザー パラメータを無効にしてから、スクリプトを実行して結果ツリーのデバッグ サンプラーを表示できます。応答データの応答本文に次の結果が表示されます。
JMeter変数:
JMeterThread.last_sample_ok=false
JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@4fa1cf1
START.HMS=165132
START.MS=1720515092259
START.YMD=20240709
テスト開始.MS=1720578466746
_jm__threadgroup__idx=0
_jmeter.U_T=スレッドグループ1-1
var=見つかりません
var_1=
var_1_g=2
var_1_g0=“id”:123,“name”:“John Doe”,“email”
var_1_g1=123
var_1_g2=ジョン・ドゥ
var_2=
var_2_g=2
var_2_g0=“id”:456,“name”:“ジェーン・スミス”,“email”
var_2_g1=456
var_2_g2=ジェーン・スミス
var_matchNr=2
上記の内容から、対応する正規表現によって抽出された var 変数の値を確認できます。この時点で、正規表現ユーザー パラメーター プリプロセッサの適用を引き続き検証し、他のコンポーネント パラメーターを設定し続けることができます。
HTTP リクエスト 2: プロトコル http、サーバー名または IP127.0.0.1、ポート番号 8091、メソッド POST、パス/ログイン、コンテンツ エンコード utf-8、次に 2 つのパラメーターをパラメーターに追加し、それぞれ名前 123、456 を入力します。今は使わないでください 具体的な意味はともかく、まずは試してみましょう。
正規表現ユーザーパラメータ: 正規表現の参照名は var に設定され、ここでのパラメータ名は上記の正規表現のパラメータ名と一致する必要があります。パラメータ名は正規表現グループ番号が 1 に設定され、パラメータ値は正規表現グループ番号が設定されます2 に、なぜこのように設定するのですか?このように理解できます。HTTP リクエスト 2 で 123 と 456 を設定しました。パラメータ名の正規表現グループ番号を 1 に設定すると、var パラメータに var_1_g1 と var_2_g1 のパラメータが取られると理解できます。 HTTP リクエスト 2 でパラメータがここのパラメータと一致したら、パラメータとデータの関係に対応させて、パラメータ値の正規表現グループ番号を 2 に設定する道を開きます。パラメータ値がいつ設定されるかがよくわかります。正規表現グループ番号を 2 に設定すると、取得されるパラメータは var_1_g2 と var_2_g2 になります。
次のステップでは、結果ツリーで HTTP リクエスト 2 のリクエスト本文のデータを表示する結果を確認します。しかし、必要なものを確認しただけなので問題ありません。結果は関係ありません。
POST http://127.0.0.1:8091/ログイン
POSTデータ:
123=ジョン+ドウ&456=ジェーン+スミス
[クッキーなし]
上記のPOSTデータから、該当するデータがリクエストに反映されていることがわかります。
● スコープ: 正規表現ユーザー パラメーターは、次の HTTP リクエストまたはサンプラーにのみ有効です。グローバルに適用する必要がある場合は、変数と組み合わせて「正規表現エクストラクター」を使用することを検討してください。
● デバッグ: 「結果ツリーの表示」リスナーを使用して正規表現の一致をチェックし、データが正しく抽出されていることを確認します。
正規表現ユーザー パラメータは JMeter の強力な機能であり、動的データの処理を簡素化し、テスト スクリプトの柔軟性と自動化を向上させます。この機能を適切に構成して利用すると、複雑なシステムのパフォーマンス テストのニーズを効果的に処理できます。