Переменные цикла JMeter - PullRequest
       22

Переменные цикла JMeter

0 голосов
/ 21 февраля 2012

У меня есть тестовый пример в Jmeter (2.5.1).
Мне нужно определить переменную и затем изменить ее значение в цикле while, в основном:

isQuest = true;
while(${isQuest}){
     Http Sampler
         Reg Exp Extractor -> set the isQuest based on the result
}

Поскольку JMeter загружает пользователяопределил переменные в памяти один раз в начале, это не позволяет мне присвоить другое значение переменной в памяти.

Как лучше всего решить эту проблему?

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Вы можете использовать свойства jmeter вместо переменных, доступ к которым осуществляется через функции jmeter или код бобовой оболочки:

${__P(whileCondition,)}
${__setProperty(whileCondition,TRUE,)}
${__BeanShell(props.get("whileCondition")}
${__BeanShell(props.set("whileCondition")}

Вы можете попробовать использовать что-то похожее на следующую конструкцию:

<b>Thread Group</b>
    <b>HTTP Request</b>
    <i>//set-found-condition</i>
    ${__setProperty(txtFound,FALSE,)}
    <b>While Controller</b>
    <i>// invert value in condition - will be executed while txtFound == FALSE</i>
    Condition = ${__BeanShell(!props.get("txtFound")}
        . . .
        [execute your test logic here]
        . . .
        <b>YOUR HTTP Request</b>
            <b>Response Assertion</b>
            <i>// set your text assertion here</i>
            <i>// this will results in ${JMeterThread.last_sample_ok} = TRUE if text found</i>
        <b>IF Controller</b>    --FOUND
        <i>// if text found set separate variable or property - e.g. ${txtFound} - into TRUE</i>
        Condition = ${JMeterThread.last_sample_ok}
            <b>HTTP Request</b> 
            <i>//set-found-condition</i>
            ${__setProperty(txtFound,TRUE,)}  <i>// this will be inverted to FALSE in the next WHILE cycle's condition, WHILE cycle will be exited</i>
        . . .

Я думаю, вы также можете легко использовать BSF или BeanShell PostProcessor, прикрепленный к ВАШ HTTP-запрос , чтобы установить свойство txtFound в TRUE вместо громоздкой конструкции с IF.

0 голосов
/ 09 января 2014

Нет, вы можете присвоить значение определенной пользователем переменной во время выполнения.Если вы используете BeanShell PreProcessor, vars.put("variablename", "variablevalue");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...