これが繰り返しの質問である場合は申し訳ありません。答えが見つかりませんでした。(はい、チェックしましたが、LR 11.04 の RTFM はしませんでした。私が残したつかの間の正気を維持したいのです。)
loadrunner 内から Perl を呼び出すことができることは知っていますが、まだ例を見つけていません。Web_Reg_Save_Param_ex / Web_Reg-Save_Param_Regexp 関数の RegEx ロジックが Perl サブルーチンに移植されているため、それが可能であることはわかっています。
テストする (half-@$$ed) アプリケーションでやらなければならないことがかなりあるので、その方法を知る必要があります。
例は次のとおりです。
.NET アプリケーション - パラメーター値をすばやく簡単に探し出し、それらを LR の外でスライスして解析し、その値を LR に返すことができました。
標準 Web アプリ - 誰かのサンドボックスへのサードパーティ呼び出しを行います。すべての情報は Base64 エンコーディングです。プレーンテキスト (応答で提供) を取得し、Base 64 にエンコードして、プライマリ システムに送信する必要があります。したがって、AUT はシステム A です。システム A がシステム B を呼び出し (302 応答)、システム B が応答すると、AUT はそのデータをシステム A に送り返し、データベースに保存します。(システム A とシステム B は同じベンダーのものなので、入札プロセスについて質問がありますが、それは OT です。)
私は優れたプログラマーですが、Perl には疎いという点で問題があります。したがって、この時点で座ってコーディングするだけでなく、清掃して書き直す必要があります。見つけた RegEx 情報を調べました (これまでのところ、 loadrunner で正規表現を使用するのが最善でした) が、これまでのところ、私がやろうとしていることには不十分です。
ソース:
{"text":"A*","value":"271"}, // This is just the pattern - it's repeated 320 times or so
コード スニペットの例:
web_reg_save_param_ex(
"ParamName=Charity1",
"LB={\"text\":\"",
"RB/RE=\",\"value\":\"([0-9]+)\"},",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=Yes",
"RequestUrl=*/Person.aspx*",
LAST);
それが機能し、名前を返します(A*
上記のソースから)。
web_reg_save_param_ex(
"ParamName=Charity1",
"LB/RE={\"text\":\"([A-Za-z0-9].+)\",\"value\":\"",
"RB=\"},",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=Yes",
"RequestUrl=*/Person.aspx*",
LAST);
これは私にはうまくいきません - 見つかったレコードの合計はゼロです。OK、1 つのエントリに「-」があり、いくつかはスペースがありますが、100% 失敗ですか? OTOH、リスト全体をキャプチャできたら、それをPerlに送信し、部分文字列を分割し、トリムされたきちんとした2つの値を返し、LoadRunner文字列として保存します(私は思う-LRは単一の戻り値以上を好みませんしかし、STRUCT を実行してその値を返すことも、メモリ空間へのポインタを返すこともでき、LR に参照されたメモリを STRUCT に読み込ませることもできます。)
問題は、AUT が両方の値をすぐに使用することが明らかになったため、後で値が送り返されたときに作業できないことです。明らかに、数値はテキストよりも重要です。
どんな提案でも大歓迎ですが、私は の使用を避けたいと思ってsystem()
います - それは Base64 の質問に対する私が持っている回避策です (それはこれまで唯一の Perl 呼び出しであるはずでした)。M$
必要なパッチが必要で、LoadRunner でファイルを開いて読み取ることができなくなりました (HP は「これはカスタム コードです。私たちはあなたを助けることはできません。そのため、M$
パッチを削除してテストを実行しました。2010 年頃の C++ 再頒布可能パッケージでした。参考までに、このショップではまだ XP を実行しています。私のデスクには 4 GB の Core i5 があります... Win7 が付属しています。そして、Xtra Pathetic を実行しています。ここでは正気度が不足しています … )
// * ** * ** 最近のリビジョン:
LoadRunner 呼び出し (web_reg_save_param_regexp への) の変更は、RegEx をまっすぐにした後に機能しました。"Not Quote" RegExp がA*
最初の値に対して を返さなかった理由は明らかではありませんが、なぜ が271
表示されないのかがわかりました - 実際には簡単でした。終了値に同じ境界条件がありませんでした。最初の値、明らかに「Not Quote」*
には、値に「」がある場合は含まれません。???
web_reg_save_param_regexp(
"ParamName=Charity_REGEX",
"RegExp={\"text\":\"([^\"]{1,8})\",\"value\":\"",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=Yes",
"RequestUrl=*/Person.aspx*",
LAST);
web_reg_save_param_regexp(
"ParamName=Tenants_REGEX",
"RegExp=\",\"value\":\"([0-9]{1,3})\"}",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=Yes",
"RequestUrl=*/Person.aspx*",
LAST);