0

シナリオがあります

ユーザーログイン

json パス エクストラクタを使用して、すべての予約 ID を配列として取得します

["75457052","75405285","75400251","75400246","75400252","75307496","75307497","75307498"]

ここで、ユーザーは /reservation/id のように、配列に記載されているすべての ID に移動する必要があります

上記の URL から取得した応答で、特定の基準が満たされた場合 (たとえば、destinationCount > 1 など)、その ID が返され、ループから抜け出します。

基準を満たす最初のIDが必要です

4

2 に答える 2

1

正規表現のように、JSON パス エクストラクタが一致するすべての値を変数として公開するかどうかはわかりません。次のように、正規表現エクストラクタと foreach コントローラを組み合わせて使用​​できます。

  • スレッドグループ
    • 予約IDを返すHTTPサンプラー
      • 一致するすべての予約 ID に一致する正規表現ポスト プロセッサ
    • destinationCount=0 を初期化し、反復子 i=1 を初期化する Bean シェル プロセッサ
    • foreach コントローラー
      • ifcontroller (destinationCount < 1)
      • ${reservation_id}_${i} の HTTP サンプラー
        • destinationCount を新しい値に設定する Beanshell プロセッサ

これらのスクリーン キャストを見て、正規表現エクストラクタと foreach コントローラがどのように実装されているかを正確に確認することをお勧めします。

于 2013-10-02T04:21:19.377 に答える
0

私が行った方法は以下の通りです

Navigate to reservations to get all the reservation ids
Through regular expression extractor :-
    Reference Name :- getreservationid
    Regular expression:- "id": \"(.+?)\"
    Match No :- -1
    Template:- $1$

Then add foreach controller
  input variable prefix :- getreservationid
  output variable name :- reservationid

Then add http sampler to go to each reservationid :- /reservation/${reservationid}/home
 Add json path extractor :- Name - numberOfLocations, JSON path     :- $.payload.destinationGuide.numberOfLocations
   Then add if controller ${numberOfLocations} > '1'
      Then add the http sampler as example go to the weather page of that id :- /reservation /${reservationid}/weather
      //I need to go only once to that weather page and then come out of for each controller
      then add BSF post processor -> beanshell ( this is to remove all the variables so that it would come out from the foreach controller)
      copy = new HashSet(vars.entrySet());
         for (Iterator iter = copy.iterator(); iter.hasNext();) {
         e = iter.next();
         if ( e.getKey().startsWith("getreservationid") ) {
          vars.remove(e.getKey());
       }
     }
于 2013-10-02T09:56:56.000 に答える