Size: a a a

QA — Load & Performance

2021 July 03

VG

Viktor Ganeles in QA — Load & Performance
Есть штука для автоматической остановки теста по нарушению sla
источник

VG

Viktor Ganeles in QA — Load & Performance
Может это она?
источник

I

Ilya in QA — Load & Performance
wa -- work around.
В проперти складываются.
источник

I

Ilya in QA — Load & Performance
Попробую убрать, но она все-таки срабатывает на ошибки. А видно что там ничего не стартануло
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
И props это HashMap, не потокобезопасная структура на запись. На чтение да, на запись нет. При работе в 10 потоков потоки могут ломать значения друг-друга. А в 1 нет
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Позтому в props удобно положить Concurrent Hash Map, в нее добавлять данные многопоточно можно
источник

I

Ilya in QA — Load & Performance
Понял, спасибо. Но это тоже не из-за этого. :( Я просто убирал jsr223 — не помогает.

Сейчас задумался, у меня же в качестве ключа уникальное имя пользователя. Как оно может ломать? Т.е. если я записываю значение по ключу user1 в одном потоке, как из потока c ключом user2 может поломать?
источник

I

Ilya in QA — Load & Performance
А точно HashMap? Я чекнул доку для JSR223_Sampler там props — это java.util.Properties и он наследуется от HashTable, а не от HashMap.
А HashTable вроде как thread-safe
источник

VG

Viktor Ganeles in QA — Load & Performance
в проперти можно класть объекты
источник

I

Ilya in QA — Load & Performance
def tmpMap = [:]

tmpMap.putAt("access_token", vars.get('access_token'))
tmpMap.putAt("refresh_token", vars.get('refresh_token'))

props.put(vars.get('username'), tmpMap)
Ну у меня вот так. Потом достаю по ключу username.
Сейчас понял что это не оптимально, переделаю. Но работает вполне неплохо.
источник

СФ

Степа Фомичев... in QA — Load & Performance
Минус props в том, что это глобальные переменные, и как вы правильно заметили, там hashtable, у которого синхронизированы все методы, то есть это крайне медленная структура.
источник

СФ

Степа Фомичев... in QA — Load & Performance
Если нужно много юзать между потоками переменные, лучше использовать CuncurrentHashMap, как говорил слава, так как она не блокируется пока нет райтеров, или vts (какие то его аналоги)
источник

I

Ilya in QA — Load & Performance
Так я так понимаю, медленная она на запись? Разве нет? Я ее в setup делаю и в целом мне не критично падение скорости там. А потом только читаю.
источник

СФ

Степа Фомичев... in QA — Load & Performance
У неё чтение тоже блокирующая операция, в том то и минус
источник

СФ

Степа Фомичев... in QA — Load & Performance
Устаревшая структура данных
источник

I

Ilya in QA — Load & Performance
О, спасибо. Ну поправить не проблема, изменю. Только один фиг изначальную проблему это не решает :)
источник

СФ

Степа Фомичев... in QA — Load & Performance
Вы пробовали запустить ТОЛЬКО setup thread group? Я вижу потенциально в вашем скрипте несколько мест, которые могут влиять на логику выполнения скрипта. В идеале сделать новый jmx, там setup, внутри самый обычный запрос на какой нибудь Яндекс
источник

I

Ilya in QA — Load & Performance
Да, пробовал (но я отключал просто часть компонентов). Тот же результат. Я искал что могло влиять на такое поведение. Попробую чистый. Отпишусь потом, если найду
источник

СФ

Степа Фомичев... in QA — Load & Performance
Кажись понял в чем у вас проблема, уберите same thread of each iterations
источник

СФ

Степа Фомичев... in QA — Load & Performance
Same user on each iteration*
источник