2017-10-20 1 views
0

ord[i] 값을 사용하여 배열을 반복하고 passwd의 문자를 선택할 수 있습니까? 코드jmeter의 beanshell 스크립트에서 배열을 반복하는 방법 3.2

   String ordinal = vars.get("ordinal"); 
      String[] ord = ordinal.split(","); 
      log.info(ord[0]); 

      String passwd = vars.get("password"); 
      requiredOrd = new ArrayList(); 
      for(int i=0; i< ord.length; i++) 
      { 

        requiredOrd.add((passwd.charAt(ord[i]))); 

       } 

      log.info(requiredOrd[0]); 

반환 오류 메시지는 다음과 같이

2017년 10월 23일 10 : 23 : 26,270 ERROR oajuBeanShellInterpreter : 오류 호출 BSH 방법 : 평가 전래 파일 : String ordinal = vars.get("ordinal"); String[] ord = ordinal.split(","); log.inf . . . '' : Error in method invocation: Method charAt(java.lang.String) not found in class'java.lang.String' 2017-10-23 10:23:26,270 WARN o.a.j.e.BeanShellPostProcessor: Problem in BeanShell script: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: 문자열 순서 = 바르 : 인라인 평가 .get ("ordinal"); String [] ord = ordinal.split (","); log.inf. . . '': 메서드 호출 오류 : 메서드 charAt (java.lang.String)가 class'java.lang.String에 없습니다.

+0

가 원래의 코드를 수정하고 지금은 오류 메시지를 포함 – Nobody

+0

https://stackoverflow.com/help/someone- answers – user7294900

답변

0

Beanshell을 사용하면 색인 당 문자를 반환하는 String 메서드 charAt을 사용할 수 있습니다. 너무 친절로 그루비 언어로 전환 고려하여 JMeter에서 JMeter 3.1 it is recommended to use JSR223 Test Elements and Groovy language for any form of scripting 때문에

for(int i=0;i<passwd.length(); i++) { 
    log.info(passwd.charAt(i)) 
+0

문제는 charAt 메소드가 jmeter에서 지원되지 않는다는 것입니다. 따라서 오류가 발생합니다. 감사합니다 – Nobody

+0

업데이트 된 답변보기 – user7294900

0

: 배열의

지수가 너무 i = 0passwd.length() 전화로 변경 0으로 시작

관련 코드는 무언가 같이 될 것이다 :

def password = 'foo' 
for (char c : password.toCharArray()) { 
    log.info('Current char: ' + c) 
} 

JMeter Groovy Iterate String

+0

서수에 대한 옵션을 해제하여이 문제를 해결할 수있는 해결 방법을 사용했습니다. 서수 설정은 몇 가지 시나리오에서만 필요하며 수락되었습니다. – Nobody

+0

모든 암호 목록을 출력하는 위 코드를 사용하려고했습니다. 그런 다음 ord 값에 따라 암호에서 문자를 가져와야합니다. 우리가 1, 4,6, 패스워드 = a234567을 얻으면, 4,6을 반환해야합니다. – Nobody

관련 문제