2017-11-14 5 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 상태가이 변수에 액세스 할 수없는 I 얻을 에러 :

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. 다음과 같이 코드를 수정하십시오.

    act_value
  2. 가로 HTTP Request 샘플러를 넣어 :

    String myList = "123,456,343,909"; 
    String[] numbers = myList.split(","); 
    for (int i = 0; i < numbers.length; i++) { 
        vars.put("number_" + i, numbers[i]); 
    } 
    
  3. 곳이 스크립트 후 ForEach Controller를 추가하고 다음과 같이 구성 :

    • 입력 변수 접두사 : number
    • 출력 변수 이름을 ForEach 컨트롤러의 하위

      귀하의 HTTP 요청이 myList

      JMeter Iterate Variables


에서 각 값에 대해 실행됩니다 또한 유효으로 Beanshell 코드가 유효 그루비 코드가 될 것입니다 대부분의 경우, JSR223 Test ElementsGroovy language로 전환 고려 그러나 성과는 매우 더 높을 것이다.

+0

'mylist'는이 상태에서 정의되지 않았습니다. 이전 추출기 상태에서 결과를 얻습니다. – plaidshirt

+2

친애하는'plaidshit', 필자는 변수를 어떻게 얻었는지 짐작할만큼 충분히 텔레파시 적이 지 않다. 추출기에서 오는 경우 첫 줄을'String myList = vars.get ("myList");' –

+0

@ Dimitri T : 물론 고마워! – plaidshirt