JMeter: Как сравнить удаление данных из таблицы базы данных в пакетном режиме? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь сравнить разницу в производительности между размерами пакетов DELETE с помощью JMeter.

У меня есть таблица, в которую я заполняю большое количество тестовых данных.Затем у меня есть запрос JDBC, который выполняет следующий оператор:

delete from tbl where (entry_dt < '2019-02-01') and (rownum <= 10000);

Я хочу продолжать выполнять это до тех пор, пока таблица не станет пустой, и записать время, необходимое для очистки таблицы.

Я буду запускать этот поток несколько раз, чтобы получить среднее время выполнения, и повторять этот процесс для разных размеров пакета.

  1. Как мне определить свой контроллер While для достижения этой цели?

  2. Я читал с других сайтов, что могу использовать контроллер транзакций для определения времени моего процесса, но я не знаком с этой функцией.Как мне определить мой контроллер транзакций для достижения этой цели?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019
  1. Добавить Контроллер транзакций в качестве тестового элемента верхнего уровня в группе потоков
  2. Добавить Пока контроллер в качестве дочернего элемента контроллера транзакций и используйте следующее выражение условия:

    ${__jexl3(${count_1} > 0,)}
    
  3. Поместите свой сэмплер JDBC Request в качестве дочернего элемента контроллера while
  4. Add JDBC PostProcessor как дочерний образец JDBC Request и настроить его следующим образом:

    enter image description here

  5. Контроллер будет выполнять итерацию до тех пор, пока в таблице tbl не будет записей, а контроллер транзакций запишет совокупное время всех выполненных сэмплеров JDBC Request.

0 голосов
/ 18 февраля 2019

Я бы сделал это следующим образом:

  1. Используйте сэмплер "Запрос JDBC - Получить счетчик", чтобы получить данные из БД, которые должны быть удалены Get Count
  2. Используйте утверждение BeanShell, чтобы проверить, есть ли еще данные, которые можно удалить.В противном случае остановите поток BeanShell Assertion
  3. Выполните запрос на удаление данных Delete the data
  4. Группа потоков должна остановить Тест на ошибку Stop test on error
...