2013-08-12 8 views
0

테스트 용으로 Jmeter를 사용하고 있으며 정규 표현식을 통해 추출 된 paticular 변수를 편집해야하며 javaScript를 사용하여 변수를 편집하려고합니다. Beanshell에서. 우선 Beanshell에서 자바 스크립트를 직접 iunclude 할 수 있는지, 둘째로 어떻게 JavaScript 함수를 호출 할 수 있는지 알고 싶습니다. 예를 들어, 다음 코드입니다.Jmeter에서 Beanshell의 javaScript 함수를 호출하는 방법

var passwd = "[email protected]"; 
     var newpasswd = ""; 
     var ranVal= "ABCDEF"; 
function SaveClick(){ 
     print("BBBBB"); 

       document.write("<h3>Final Encripted Password : </h3>", newpasswd); 
      //document.write(newpasswd); 
     } 
+0

Beanshell을 사용하면 JavaScript가 아닌 임의의 Java 코드를 실행할 수 있습니다. – leonm

+0

답장을 보내 주셔서 감사합니다. 하지만 JavaScript를 사용해야하는 경우 어떻게해야합니까? – ycr

+0

포스트 프로세서의 자바 스크립트가 어쨌든 수신 된 응답의 DOM에서 작동 할 수 있다면 정말 의심 스럽습니다. 필자는 샘플 코드에서 그런 종류의 것을 기대하고 있습니다. –

답변

2

당신은으로 Beanshell와 자바 스크립트를 혼합 할 수 없습니다.

하지만 전체 자바 스크립트를 사용하려면 Jsr223 요소를 사용하고 자바 스크립트를 선택하십시오.

요소 외부에서 함수를 호출 할 수 없으므로 함수 코드를 인라인해야합니다.

어쨌든, 자바 스크립트는 작동하지 않습니다 document.write를 함께 할 노력하고 그래서 뭐, 당신이 DOM에 대한 액세스 권한을 부여하지 않습니다.

1

당신은 그들 중 하나 인 자바 스크립트 다양한 스크립트 언어를 가지고 BSF 포스트 프로세서를 사용할 수 있습니다.

http://jmeter.apache.org/usermanual/component_reference.html#BSF_PostProcessor 다음은 내 테스트 계획의 샘플 자바 스크립트입니다. 넣어 평가, putObject의 사용을주의 등 로그인

log.info("processing image index response"); 
if ("" != prev.getResponseDataAsString()) { 
    eval('var indexJSON = ' + prev.getResponseDataAsString()); 
    vars.putObject("indexJSON", indexJSON); 

    vars.put("currentThumb", "0"); 
    vars.put("currentSlide", "0"); 

    var next_slide_timestamp=indexJSON[0].timestamp; 
    vars.put("next_slide_timestamp", "0"); 

    var maxSlides=indexJSON.length; 
    vars.put("maxSlides", maxSlides); 
} else { 
    vars.put("currentThumb", "0"); 
    vars.put("currentSlide", "0"); 
    vars.put("next_slide_timestamp", "0"); 
    vars.put("maxSlides", "0"); 
    log.info("index time : empty response , setting defaults to zero"); 
} 
+0

Jsr223은 최신 방식입니다. –

+0

흠 ... 문서가 차이점에 대해 이야기하지 않습니다. 차이점은 무엇입니까? 또한 언어 옵션에는 여러 유사한 옵션이 있습니다. 나는 궁금해하는 데이트, 차이점은 무엇입니까. –

+0

답장을 보내 주셔서 감사합니다. JSR223 샘플러로이 작업을 수행 할 수 있었고 코드를 인라인 할 필요가 없습니다. 문제는 반환 된 값이 변수에 할당되도록 사용자 정의 변수를 업데이트하거나 JSR223 코드를 호출하는 방법입니다. – ycr

관련 문제