Size: a a a

QA — Load & Performance

2019 October 16

AV

Andrey Vasiliev in QA — Load & Performance
Спасибо, всем за ссылки, буду пробовать, ковырять :)
источник
2019 October 17

KK

Konstantin Kalinin in QA — Load & Performance
Коллеги, вопрос про замеры времени в Java Sampler. Если я явно вызываю SampleResult.sampleStart() и SampleResult.sampleEnd(), то измерения проводятся корректно, но в лог сыплются ошибки, что указанные методы вызываются дважды.
Если методы не вызывать, то время выполнения нулевое записывается в результаты. WTF?

P.S. Сэмплер сделан реализацией интерфейса JavaSamplerClient
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Konstantin Kalinin
Коллеги, вопрос про замеры времени в Java Sampler. Если я явно вызываю SampleResult.sampleStart() и SampleResult.sampleEnd(), то измерения проводятся корректно, но в лог сыплются ошибки, что указанные методы вызываются дважды.
Если методы не вызывать, то время выполнения нулевое записывается в результаты. WTF?

P.S. Сэмплер сделан реализацией интерфейса JavaSamplerClient
Если создать свой объект Sampler, то для него, думаю можно применить программное задание времени старта и завершения. А для текущего активного нет
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Создаю подзапросы к текущему запросу, когда хочу зплогировать что-то своё. Для подзапросов нет проверки того, что они стартанули и завершились во время работы родительского sampler, а логируются они также
источник

KK

Konstantin Kalinin in QA — Load & Performance
Вячеслав Смирнов
Если создать свой объект Sampler, то для него, думаю можно применить программное задание времени старта и завершения. А для текущего активного нет
А почему тогда он не выдает корректное время, если эти методы не вызывать? Операции внутри runTest() длятся некоторое время, но в результатах Load=0
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Konstantin Kalinin
А почему тогда он не выдает корректное время, если эти методы не вызывать? Операции внутри runTest() длятся некоторое время, но в результатах Load=0
Покажите код
источник

KK

Konstantin Kalinin in QA — Load & Performance
public SampleResult runTest(JavaSamplerContext context) {
       SampleResult result = this.result;
       log.info(String.format("Suggested sleep duration: %d", sleepDuration));
       try {
           Thread.sleep(sleepDuration);
       } catch (InterruptedException e) {
           log.error(e.toString());
       }
       log.info(echoString);
       result.setResponseData(echoString, "UTF-8");
       result.setResponseOK();

       return result;
   }
Простейшая демо-реализация.
источник

KK

Konstantin Kalinin in QA — Load & Performance
Хмм... похоже, проблема в том, что все надо тащить из контекста и сэмплить через существующий экземпляр Sampler.sample()
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Не писал ещё такого кода. Не могу подсказать, как оно работает
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Это запуск теста без JMeter, но с использованием его API, видимо
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Там за статистику отвечает отдельный компонент. За отрисовку отдельный. Какой-то магии вида: создать sampler и автоматически запишется csv файл с результатами нет, на сколько знаю
источник

KK

Konstantin Kalinin in QA — Load & Performance
Не, с Джметром :) Я просто весь класс не стал копипастить, т.к. там нет ничего существенного.
Пошел в доку https://jmeter.apache.org/usermanual/component_reference.html#Java_Request
Там написано: создай класс, реализующий интерфейс o.a.j.p.j.s.JavaSamplerClient - и будет щастье.
Вот я и реализовал. Только SampleResult, который возвращается в конце я создаю в методе setupTest()
источник

ВС

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

ВС

Вячеслав Смирнов in QA — Load & Performance
Счас найду пример, он в исходниках JMeter - делал по образцу SleepTest
источник

ВС

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

KK

Konstantin Kalinin in QA — Load & Performance
Он мне показался кривоватым, когда увидел. Но, возможно, нужен свежий взгляд. Спасибо!
источник

ВС

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

KK

Konstantin Kalinin in QA — Load & Performance
Хотя по сути они там SampleResult тоже прямо тут, в runTest() создают, а не вытягивают хитрыми способами из контекста.
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Konstantin Kalinin
Он мне показался кривоватым, когда увидел. Но, возможно, нужен свежий взгляд. Спасибо!
Аналогично. Но если просидеть, посмотреть на код, то становится понятнее.

Тут есть список переменных. Удобный. Действие. Фиксация результатов.
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Думаю надо сделать отдельный простой проект, где собирался бы подобный класс
источник