Коллеги, добрый день!
Отправляю асинхронные SOAP-запросы через JMeter. Как советовал Вячеслав, ответ будет помещаться в очередь. Сейчас смотрю, как вытащить ответ.
Очередь - ActiveMQ. Руками положил в неё ответ, пытаюсь вытянуть JMS Subscriber'ом, но не получается. Подскажите, пожалуйста, где ошибся? Как нужно организовать запрос, чтобы после получения кода 202 он начинал слушать очередь в ожидании ответа?
Привет, а почему в качестве очереди выбран вариант ActiveMQ? Я не помню, чтобы советовал помещать ответы в очередь.
Я использую такую структуру:
ConcurrentHashMap, где ключом явдяется идентификатор запроса, который смогу получить и из ответа - логин пользователя, CorrelationID, ...
А значением является LinkedBlockingQueue со списком запросов, которые отправил по этому идентификатору.
В очереди структуры данных, на groovy их формировать просто
dataSet = [:]
dataSet["id"] = id
dataSet["startTime"] = ...
Помещаю в очередь (внутри JVM) идентификатор запроса, время старта, что-то нибудь ещё. Не ответ.
А уже когда получаю ответ, в другом потоке, получаю из него идентификатор, по идентификатору получаю из ConcurrentHashMap очередь запросов по этому идентификатору, беру самый старый запрос из очереди.
Так получается, что "вспоминаю" параметры запроса и момент отправки. И могу программно сформировать SampleResult чтобы статистика отразилась в логе JMeter