2

私は次のようなシナリオを持っています

 user logs in ( /login)

 navigate to the reservations page to get all the reservation id (/reservations)

  Through json path extractor it gets first reservation id from the JSON.($..reservationLists..id[0], reservationid)

  navigate to the first reservation id (/reservation/${reservationid})

ナビゲートするすべてのページで、HTTP ヘッダー マネージャーは、基本的に url、secretKey、publicKey の組み合わせである、そのページに適用可能な handShakeKey を必要とします。( secretKey 、 publicKey はどちらも静的ですが、URL は変更されます )

(/login、/reservations) のような静的 URL の場合、最初に BSF プリプロセッサを追加し、変数を宣言し、これらの変数を HTTP ヘッダー マネージャーで ${handshakeKey_reservations}、${handshakeKey_login} などとして使用します。これは完全に正常に機能します。

  var urls = ["login", "reservations", "logout", "profile"];

  for (var i = 0; i < urls.length; i++) {

    var handShakeKeyForStaticUrls = CryptoJS.SHA1("/"+urls[i]+"abcdediiebneC"+"12345678");

      handShakeKeyForStaticUrls = handShakeKeyForStaticUrls.toString(CryptoJS.enc.Base64);

     vars.put("handshakeKey_"+urls[i], handShakeKeyForStaticUrls);

      }

問題は動的 URL (/reservation/${reservationid}、/reservation/${reservationid}/summary など.......) です。

次のようなJavaスクリプト関数を作成することを考えていました

    function getHandShakeKey(url)
       {

       var handShakeKeyForDynamicUrls = CryptoJS.SHA1(url+"abcdeffe"+"12345678");

       handShakeKeyForDynamicUrls = handShakeKeyForDynamicUrls.toString(CryptoJS.enc.Base64);

       //return handShakeKeyForDynamicUrls;

      vars.put("handShakeKeyForDynamicUrls", handShakeKeyForDynamicUrls);

       }

次に、HTTPヘッダーマネージャーで私がしたいこと

handshakeKey ${_javaScript(getHandShakeKey("/reservation/${reservationid}"))}

だから問題は、この Java スクリプト関数をどこに登録して、どこでも呼び出すことができるかということです。

私が行った回避策は現時点では、動的 URL を含む各 http サンプラーに BSF ポスト プロセッサを追加し、その URL にのみ適用可能な handShakeKey を生成および宣言し、対応する HTTP ヘッダー マネージャーで同じものを使用することです。私はこれを取り除く必要があります。

4

0 に答える 0