Вы можете использовать свойства 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.