У меня проблема с Integer в JMeter Beanshell Sampler/Pre/Post процессор. У меня есть некоторый массив значений, и я хочу использовать каждое значение этого массива для установки JMeterProperty для следующего использования.JMeter Beanshell Integer Error
GOAL> имеет несколько строк из запроса. Для примера столбец UPSTREAM имеет значения diff, и мне нужно его сохранить для последующего использования. Потому что я буду использовать их для вызова CMD.exe в качестве параметров с помощью «OS Processes Sampler».
So, if UPSTREAM_1=XXX, UPSTREAM_2=AAA,
CMD.EXE will looks like: CMD.EXE -upstream_1 -upstream_2, etc.
С SQL я получил массив значений
COUNT=31
UPSTREAM_#=31
UPSTREAM_1=XXX
UPSTREAM_2=AAA
....
В постпроцессор я установил:
${__setProperty(COUNT, ${COUNT_1})};
Я пытаюсь это scrpit:
import java.util.*;
import java.text.*;
import java.io.*;
int max = Integer.parseInt(vars.get(${COUNT_1})); //--COUNT=31, Integer doesnt work
int n = vars.get(${COUNT_1}); //--COUNT=31, this also doesnt work
for (int i=1;i<=n;i++)
{
${__setProperty(UPSTREAM_i, ${UPSTREAM_i})};
}
Но журнал JMeter сказать, что не знаете «INT»
2016/10/03 14:52:13 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: `` import java.util.*; import java.text.*; import java.io.*; int max = Integer.p . . . '' : Typed variable declaration : Error in method invocation: Method get(int) not found in class'org.apache.jmeter.threads.JMeterVariables'
2016/10/03 14:52:13 WARN - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: `` import java.util.*; import java.text.*; import java.io.*; int max = Integer.p . . . '' : Typed variable declaration : Error in method invocation: Method get(int) not found in class'org.apache.jmeter.threads.JMeterVariables'
Может кто-нибудь мне помочь? Может быть, я пропустил некоторые библиотеки или что-то в этом роде. JRE/JDK у меня есть.
UPDATE_1
Переменные пользователя все:
COUNT ${__property(COUNT)} Count of Rows from SQL Query
Test_Plan:
постпроцессор Вход:
SamplerProperties:
variableNames=DATE,DOWNSTREAM,UPSTREAM,COUNT,etc.
JMeterVariables:
COUNT=31
COUNT_#=31
COUNT_1=31
COUNT_2=31
.....
DATE_#=31
DATE_1=04.10.2016
DATE_2=04.10.2016
.....
DOWNSTREAM_#=31
DOWNSTREAM_1=DDD11
DOWNSTREAM_2=DDD11
.....
UPSTREAM_#=31
UPSTREAM_1=XXX
UPSTREAM_2=AAA
....
JMeterProperties:
COUNT= 31
DATE= 04.10.2016
DOWNSTREAM= DDD11
TEST= 1
журнала отладки Loop:
SamplerProperties:
BeanShellSampler.query=import java.util.*;
import java.text.*;
import java.io.*;
int n = Integer.parseInt(vars.get("COUNT"));
for (int i=1;i<=n;i++)
{
props.setProperty("UPSTREAM_"+i, vars.get("UPSTREAM_i"));
}
JMeterVariables:
COUNT=31
COUNT_#=31
COUNT_1=31
COUNT_2=31
.....
DATE_#=31
DATE_1=04.10.2016
DATE_2=04.10.2016
.....
DOWNSTREAM_#=31
DOWNSTREAM_1=DDD11
DOWNSTREAM_2=DDD11
.....
UPSTREAM_#=31
UPSTREAM_1=XXX
UPSTREAM_2=AAA
....
JMeterProperties:
COUNT= 31
DATE= 04.10.2016
DOWNSTREAM= DDD11
TEST= 1
Это в JMeter журнале теперь: решение
2016/10/03 17:12:24 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import java.util.*; import java.text.*; import java.io.*; int n = Integer.pa . . . '' : Method Invocation props.setProperty
2016/10/03 17:12:24 WARN - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import java.util.*; import java.text.*; import java.io.*; int n = Integer.pa . . . '' : Method Invocation props.setProperty
UPDATE_2
Ubik упакуйте в разница между покупной и продажной ценой акции работает :) ГОАЛ обновляется.
Beanshell образцы все еще есть некоторые проблемы ..
Response code: 500 Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval \t Sourced file: inline evaluation of: ''import java.util.*; import java.text.*; import java.io.*; int n = Integer.pa . . . '' : Typed variable declaration : Method Invocation Integer.parseInt
–вы уверены, что COUNT действительно определяется как переменная? Можете ли вы показать свой план тестирования? Добавьте DebugPostProcessor перед Beanshell PostProcessor и покажите вывод? Thx –
no COUNT также приходит из SQL. Но когда я устанавливаю GLOBAL VAR в User Defined Variables 'COUNT = $ {__ property (COUNT)}', он возвращает еще одну ошибку 'int n = Integer.pa. , , '': Метод Invocation props.setProperty ' –