2017-11-14 28 views
0

の配列の変数をPathとしてみます。 Pathは次のようにする必要があります:mypath/${act_value}JMeter BeanShell - ループスルー値

String[] numbers = mylist.split(","); 
String act_value; 

for (int i = 1; i <= 25; i++) { 
    vars.put(numbers[i], act_value); 
} 

mylistは、文字列をカンマ区切り抽出器の出力として与えられる:mylist=123,456,343,909

HTTP Request状態この変数にアクセスすることはできません、私が取得エラー:

java.net.URISyntaxException: Illegal character in path

+0

送信しようとしているのは何ですか? – user7294900

+0

@ user7294900: 'mylist'から手作業で値を入れるとうまくいきます。 'act_value'は要求に値を取得しません。 – plaidshirt

+0

あなたはvars.put( "act_value"、numbers [i])のようなものが必要でした。 ? – user7294900

答えて

1
  1. コードを次のように変更します。

    String myList = "123,456,343,909"; 
    String[] numbers = myList.split(","); 
    for (int i = 0; i < numbers.length; i++) { 
        vars.put("number_" + i, numbers[i]); 
    } 
    
  2. このスクリプトの後にどこかForEach Controllerを追加し、次のように設定します。

    • 入力変数の接頭辞:number
    • 出力変数名:act_value
  3. をごHTTP Requestサンプラーのように入れてForEachコントローラの子供

    あなたのHTTPリクエストがmyList

    JMeter Iterate Variables


の各値に対して実行されます。また、有効なBeanShellのコードが有効なGroovyのコードになりますほとんどの場合、JSR223 Test ElementsGroovy languageへの切り替えを検討してくださいパフォーマンスははるかに高くなります。

+0

'mylist'はこの状態では定義されていませんが、以前の抽出状態から出力します。 – plaidshirt

+2

親愛なる 'plaidshit'さん、私はあなたがあなたの変数をどうやって得たのか想像するのに十分なことを想像していません。もしそれが抽出器からくるならば、' string myList = vars.get( "myList"); ' –

+0

@ Dimitri T:ありがとう! – plaidshirt

関連する問題