2015-08-17 6 views
0

Я выполняю тест в Jmeter. этот тест отправляет в конце статус теста - «успех» или «сбой». Я создал «пользовательскую переменную», которая называется «субъект» и присвоила ей значение «успех». внутри запросов HTTP Я поставил «BeanShell Утверждение», которое присваивает переменной «предмет» с «отказа», если тест не удалось:Jmeter user Определенная переменная

if((ResponseCode != null) && (ResponseCode.equals ("200") == false)) 
{ 
    //Failure=true; 
    vars.put("subject","failure"); 

} 

Теперь, в SMTP пробоотборник Я посылаю $ {тема} как предмет почты.

сэмплер не распознает переменную (она пуста). любые идеи?

+0

Вы пробовали это с помощью почтового процессора BeanShell? – Mendhak

+0

есть. утверждение BeanShell действительно работает. Я проверил это. Дело в том, что если переменная «субъект» не изменяется («отказ»), значение по умолчанию (успех) не задано. Я пробовал как «успех» (с апострофами), так и успех (без них) – user2880391

ответ

0

Можете ли вы показать скриншот своего плана тестирования? Меня особенно интересует, где живет Beanshell Assertion.

JMeter утверждения имеют свой объем, т.е. дать следующую тестовую структуру:

  • Sampler 1
    • Assertion
  • Sampler 2

Утверждение будет применяться к Сэмплер 1

В случае следующего плана испытаний:

  • Sampler 1
  • Пробоотборник 2
  • Утверждение

Утверждение будет применяться как к Sampler 1 и Sampler 2

Ничего не соответствует вашему коду, он должен устанавливать переменную «subject» в случае кода ответа «200».

Кстати, существует предопределенная переменная JMeter - ${JMeterThread.last_sample_ok} - которая возвращает «истину», если предыдущий сэмплер был успешным и «false» в другом случае. Лучше использовать его в сочетании с If Controller, поскольку Beanshell имеет известные проблемы с производительностью и может стать узким местом в случае тяжелых нагрузок.

+0

большое спасибо. Я нашел, что моя проблема (см. Мой ответ). Я также попробую ваше предложение. – user2880391

0

Проблема заключалась в том, что при использовании «утверждения Beanshell» я не передавал ему переменную - $ {subject}, поэтому, когда тест прошел успешно, это было похоже на то, что переменная никогда не назначалась.

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