Это продолжение моего вопроса JMeter: Как сравнить удаление данных из таблицы базы данных в пакетном режиме? .Я принял решение, предложенное Dimitri T, и теперь я использую контрольный пример для Oracle DB.
Мой контрольный пример начинается с вставки 1000 записей, используя 100 потоков в 10 циклах.После этого он удаляет где rownum < 250
.
. Однако мой тестовый пример больше не может обнаружить, что таблица пуста.Когда я просматриваю данные ответов в своем дереве результатов, я вижу следующее:
249 updates
249 updates
249 updates
249 updates
4 updates
0 updates
0 updates
0 updates
...
Сам JMeter не сообщает о каких-либо ошибках.
Моя группа потоков выглядит следующим образом:
...(separate thread group to do INSERT)...
Thread Group: Do DELETE
Txn Ctrl: DELETE
While Loop: tbl still has data
JDBC Request: DELETE from tbl
JDBC PostProcessor
Условие цикла определяется следующим образом:
${__jexl3('${count_1} > 0',)}
(В качестве небольшого отличия от решения в моем предыдущем вопросе я заключил условие в кавычки, чтобы предотвратить появление ошибки неоднозначного выражения.)
Запрос JDBC определен следующим образом:
delete from tbl where (entrydt < ${endDt}) and (rownum < ${deleteLimit})
(пользовательские переменные endDt
и deleteLimit
имеют значения TO_DATE('2019/02/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss')
и 250
соответственно.)
Постпроцессор JDBC определяется следующим образом:
[Select statement] select count(*) from tbl
Variable names: count (All other fields are empty.)
Handle ResultSet: Store as String
Я пытался
- Изменение условия цикла;цитаты не имеют значения;Также нельзя изменить
${count_1}
на ${count}
- Изменение постпроцессора;между именами переменных, именем переменной результата и тем, как обрабатывается набор результатов