Контроллер «ТОЛЬКО ОДИН РАЗ» работает не так, как вы думаете.
Он работает «только один раз» В РЕЗЬБЕ.Таким образом, если у вас 100 потоков, он будет работать 100 раз.
Если вы хотите, чтобы он выполнялся ОДИН РАЗ В ТЕСТЕ, выполните следующие действия:
Test Plan (Set thread groups to "run consecutively"
- Cookie Manager
- Thread Group A (1 thread, 1 loop)
- - - Login Logic
- Thread Group B
- - - Rest of test
Обратите внимание, если вам нужноразделите любые переменные между группами потоков A и B, вам нужно установить их как свойства.Переменные не могут быть общими для групп потоков, но свойства могут.Для этого вам понадобится функция свойств.
Функция __setProperty автоматически сохраняет значение в виде глобальной переменной.Самый простой способ инициировать __setProperty - создать сценарий Beanshell для POST-процессора в качестве дочернего элемента к сэмплеру, который создает файл cookie в THREAD A. Чтобы извлечь значение в THREAD B, добавьте функцию __property в качестве VALUE для параметра,нужно значение куки.
Сценарий Beanshell будет выглядеть примерно так:
props.put("COOKIENAME","COOKIEVALUE"); //creates a property "COOKIENAME" with value "COOKIEVALUE"
print(props.get("COOKIENAME")); //prints the value out to the console
Приведенный выше код всегда будет иметь одинаковое значение для COOKIENAME, но меньше, чем идея.Итак, нам нужно убедиться, что «COOKIEVALUE» является динамическим.Я бы порекомендовал поместить регулярное выражение POST-PROCESSOR для извлечения значения cookie, а затем передать его в скрипт beanshell.
Итак, наш план тестирования теперь выглядит следующим образом:
Test Plan (Set thread groups to "run consecutively"
- Thread Group A (1 thread, 1 loop)
- - - Login Logic
- - - - - Regex to grab cookie, store as "regexCookie"
- - - - - Beanshell to set property
- Thread Group B
- - - Rest of test
А теперь наш скрипт-бинчелл выглядит так:
props.put("COOKIENAME",vars.get("regexCookie")); //creates a property "COOKIENAME" with value from "regexCookie"
print(props.get("COOKIENAME")); //prints the value out to the console
Ссылки на руководство пользователя: