Size: a a a

QA — Load & Performance

2020 June 08

KY

Kirill Yurkov in QA — Load & Performance
Viktor Ganeles
А как ты это сделал?
Я думал, что бэкенд листер пишет всё в одну таблицу
я вручную пишу в инфлюкс через апи)
источник

VG

Viktor Ganeles in QA — Load & Performance
Kirill Yurkov
я вручную пишу в инфлюкс через апи)
То есть у тебя отдельные http-семплеры скидывают ошибки в инфлакс?
После теста разом все ошибки или каждую отдельно?
источник

К

Кайрат in QA — Load & Performance
Как добавить параметры boolean, если в body уже используется json?
источник

KY

Kirill Yurkov in QA — Load & Performance
Кайрат
Как добавить параметры boolean, если в body уже используется json?
а о каком параметре речь?
источник

KY

Kirill Yurkov in QA — Load & Performance
Viktor Ganeles
То есть у тебя отдельные http-семплеры скидывают ошибки в инфлакс?
После теста разом все ошибки или каждую отдельно?
я пока не нашел оптимальный вариант, сейчас пишу через постпроцессор
источник

К

Кайрат in QA — Load & Performance
Сначала я добавлял нужные параметры в parameters, но было недоступно body, потом удалил параметры, вставил json в body и отображает ошибку, что нет необходимых параметров

"Required boolean parameter 'online' is not present"
источник

К

Кайрат in QA — Load & Performance
online - boolean (query)
источник

К

Кайрат in QA — Load & Performance
в HTTP Header Manager добавлено content-type =  application/json
источник

KY

Kirill Yurkov in QA — Load & Performance
параметры можно передавать в адресной строке
site.ru/messages?allow=true&timer=60
источник

К

Кайрат in QA — Load & Performance
🤦‍♂точно, спасибо попробую
источник

KY

Kirill Yurkov in QA — Load & Performance
Viktor Ganeles
То есть у тебя отдельные http-семплеры скидывают ошибки в инфлакс?
После теста разом все ошибки или каждую отдельно?
сейчас покажу хороший вариант по моему мнению
источник

VB

Viktor Bashkatov in QA — Load & Performance
Коллеги, добрый день!
Отправляю асинхронные SOAP-запросы через JMeter. Как советовал Вячеслав, ответ будет помещаться в очередь. Сейчас смотрю, как вытащить ответ.

Очередь - ActiveMQ. Руками положил в неё ответ, пытаюсь вытянуть JMS Subscriber'ом, но не получается. Подскажите, пожалуйста, где ошибся? Как нужно организовать запрос, чтобы после получения кода 202 он начинал слушать очередь в ожидании ответа?
источник

KY

Kirill Yurkov in QA — Load & Performance
Viktor Ganeles
То есть у тебя отдельные http-семплеры скидывают ошибки в инфлакс?
После теста разом все ошибки или каждую отдельно?
в общем лови, уже есть подобие того что я сделал https://www.vinsguru.com/jmeter-save-results-to-a-database/
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Kirill Yurkov
в общем лови, уже есть подобие того что я сделал https://www.vinsguru.com/jmeter-save-results-to-a-database/
https://www.testautomationguru.com/jmeter-save-results-to-a-database/
Видимо два домена для одного блога
источник

KY

Kirill Yurkov in QA — Load & Performance
соответственно, нужно проверку поставить на isSuccess и логировать только фейлы. для того чтобы выдернуть ответ getResponseData() нужно брать
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Viktor Bashkatov
Коллеги, добрый день!
Отправляю асинхронные SOAP-запросы через JMeter. Как советовал Вячеслав, ответ будет помещаться в очередь. Сейчас смотрю, как вытащить ответ.

Очередь - ActiveMQ. Руками положил в неё ответ, пытаюсь вытянуть JMS Subscriber'ом, но не получается. Подскажите, пожалуйста, где ошибся? Как нужно организовать запрос, чтобы после получения кода 202 он начинал слушать очередь в ожидании ответа?
Привет, а почему в качестве очереди выбран вариант ActiveMQ? Я не помню, чтобы советовал помещать ответы в очередь.

Я использую такую структуру:
ConcurrentHashMap, где ключом явдяется идентификатор запроса, который смогу получить и из ответа - логин пользователя, CorrelationID, ...
А значением является LinkedBlockingQueue со списком запросов, которые отправил по этому идентификатору.
В очереди структуры данных, на groovy их формировать просто

dataSet = [:]
dataSet["id"] = id
dataSet["startTime"] = ...

Помещаю в очередь (внутри JVM) идентификатор запроса, время старта, что-то нибудь ещё. Не ответ.

А уже когда получаю ответ, в другом потоке, получаю из него идентификатор, по идентификатору получаю из ConcurrentHashMap очередь запросов по этому идентификатору, беру самый старый запрос из очереди.
Так получается, что "вспоминаю" параметры запроса и момент отправки. И могу программно сформировать SampleResult чтобы статистика отразилась в логе JMeter
источник

VB

Viktor Bashkatov in QA — Load & Performance
Вячеслав Смирнов
Привет, а почему в качестве очереди выбран вариант ActiveMQ? Я не помню, чтобы советовал помещать ответы в очередь.

Я использую такую структуру:
ConcurrentHashMap, где ключом явдяется идентификатор запроса, который смогу получить и из ответа - логин пользователя, CorrelationID, ...
А значением является LinkedBlockingQueue со списком запросов, которые отправил по этому идентификатору.
В очереди структуры данных, на groovy их формировать просто

dataSet = [:]
dataSet["id"] = id
dataSet["startTime"] = ...

Помещаю в очередь (внутри JVM) идентификатор запроса, время старта, что-то нибудь ещё. Не ответ.

А уже когда получаю ответ, в другом потоке, получаю из него идентификатор, по идентификатору получаю из ConcurrentHashMap очередь запросов по этому идентификатору, беру самый старый запрос из очереди.
Так получается, что "вспоминаю" параметры запроса и момент отправки. И могу программно сформировать SampleResult чтобы статистика отразилась в логе JMeter
ActiveMQ уже используется для MQ-запросов, потому решили переиспользовать для SOAP. Или плохой вариант?
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Viktor Bashkatov
ActiveMQ уже используется для MQ-запросов, потому решили переиспользовать для SOAP. Или плохой вариант?
SOAP в вашем случае асинхронный?
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Просто редко такое видел
источник

VB

Viktor Bashkatov in QA — Load & Performance
Вячеслав Смирнов
SOAP в вашем случае асинхронный?
Есть как синхронные, так и асинхронные запросы.
источник