2013-08-12 2 views
0

Я использую Jmeter для тестирования, и мне нужно отредактировать переменную paticular, которая извлекается через регулярное выражение, и я пытаюсь редактировать переменную с помощью javaScript, который является в Beanshell. Прежде всего, я хотел бы знать, могу ли я включить javascripts непосредственно в Beanshell и второй Как я могу вызвать функцию JavaScript. Например, следующий код.Как вызвать функцию javaScript в Beanshell в Jmeter

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 позволяет выполнять произвольный код Java, а не JavaScript. – leonm

+0

Спасибо за ответ. Но если мне нужно использовать JavaScript, как я могу это сделать? – ycr

+0

Я действительно сомневаюсь, если javascript в почтовом процессоре будет в любом случае, сможет работать с DOM полученного ответа. Я чувствую/предполагаю, что вы ожидаете чего-то подобного, от вашего образца кода. –

ответ

2

Вы не можете смешивать Beanshell и JavaScript.

Но для использования полного javascript используйте элементы Jsr223 и выберите javascript.

Обратите внимание, что вам необходимо встроить код функции, так как невозможно вызвать функцию вне элемента.

Во всяком случае, Javascript не дает вам доступ к DOM, так что вы пытаетесь сделать с document.write не будет работать.

1

Вы можете использовать BSF постпроцессор, который имеет различные скриптовый язык, JavaScript является одним из них.

http://jmeter.apache.org/usermanual/component_reference.html#BSF_PostProcessor Ниже приведен пример javascript из одного из моих планов тестирования. Обратите внимание на использование Eval, 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 Sampler, и вам не нужно делать свой код встроенным. Дело в том, как я могу обновить переменную, определенную пользователем, или вызвать код JSR223, чтобы возвращаемое значение было присвоено переменной. – ycr

Смежные вопросы