Ошибка подтверждения в JSR223 Sampler - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу сделать ошибку подтверждения в JSR223 Sampler на основе значений, которые я обнаружил в 2 постпроцессорах выше. Я попытался импортировать AssertionResult в JSR223 Sampler, но он не может вызвать метод.

Получение следующей ошибки в журнале:

javax.script.ScriptException: Источник файла: встроенная оценка: SampleResult.setIgnore(); import org.apache.jmeter.threads.JMeterContext.TestLog . . . '' : Cannot reach instance method: setFailure( boolean ) from static context: org.apache.jmeter.assertions.AssertionResult : at Line: 24 : in file: inline evaluation of: SampleResult.setIgnore (); import org. apache .jmeter.threads.JMeterContext.TestLog. , , '': AssertionResult .setFailure (true)

Это правильный способ вызова этого метода?


JSR223 Sampler

SampleResult.setIgnore();
import org.apache.jmeter.threads.JMeterContext.TestLogicalAction;
import org.apache.jmeter.assertions.AssertionResult;

//Final Response Assertion
String s1 = "N";
String s2 = "N";

if( ${__isVarDefined(s_check)} == true )
{
s1 = vars.get("s_check");
}
if( ${__isVarDefined(s_check_1)} == true )
{
s2 = vars.get("s_check_1");
}

if( (s1 == "false" && s2 == "false") || (s1 == "false" && s2 == "N") || (s1 == "N" && s2 == "false") )
{
AssertionResult.setFailure(true); //NOT WORKING
AssertionResult.setFailureMessage("accountID page is not loaded"); //NOT WORKING
ctx.setTestLogicalAction(TestLogicalAction.START_NEXT_ITERATION_OF_THREAD); //WORKING
}

1 Ответ

0 голосов
/ 22 апреля 2020
  1. У вас нет сокращения AsserionResult в сэмплере JSR223, либо переместите код в Утверждение JSR223 и измените первую строку на prev.setIgnore(true), либо измените эти строки:

    AssertionResult.setFailure(true)
    AssertionResult.setFailureMessage("accountID page is not loaded")
    

    к этим:

    SampleResult.setSuccessful(false)
    SampleResult.setResponseMessage("accountID page is not loaded")
    
  2. Встраивание JMeter Функции или переменные в Groovy скриптах не рекомендуется , вы также должны измените следующие строки:

    String s1 = "N";
    if( ${__isVarDefined(s_check)} == true )
    {
    s1 = vars.get("s_check");
    }
    

    на

    s1 = vars.get('s_check') ?: 'N'
    

Дополнительная информация:

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