JMeter - значение Datetime отличается при выборе из базы данных postgresql - PullRequest
0 голосов
/ 23 октября 2019

В моем тестовом примере JMeter я выбираю метку времени с полем часового пояса из базы данных postgresql.

Дело в том, что когда я запускаю тестовый случай на свежем экземпляре JMeter в первый раз,значение конвертируется в мое местное время / дату.

Значение в БД: 2019-10-23 06:20:54.086605+00

Значение при использовании select: 2019-10-23 11:50:54.086605

Но часто, когда я запускаю тестовый примерснова в том же экземпляре JMeter, он не преобразуется.

Значение в БД: 2019-10-23 06:42:15.77647+00

Значение при использовании select: 2019-10-23 06:42:15.77647

Повторный запуск JMeter снова приведет кв 1-м поведении. Я не могу точно определить, как и когда происходит это изменение в поведении. Это происходит время от времени, но перезапуск JMeter всегда сбрасывает на 1-е поведение.

Я попытался установить значение часового пояса в файле postgres.conf, а также значение user.timezone в system.properties в JMeter / binкаталог UTC, безрезультатно.

Я использую SELECT *, чтобы выбрать все столбцы из таблицы и сохранить их в переменных, используя поле Имена переменных в запросе JDBC.

1 Ответ

2 голосов
/ 23 октября 2019

Причина в том, что PostgreSQL timestamp with time zone отображается на java.sql.Timestamp , который не содержит информацию о часовом поясе.

Единственный обходной путь, о котором я могу подумать, - это преобразование вышеупомянутой метки времени, обеспечивающей TimeZone в качестве параметра, подобного:

  1. В сэмплере JDBC Request определитеResult Variable Name

    enter image description here

  2. Добавить JSR223 PostProcessor как дочерний элемент запроса и использовать приведенный ниже Groovyкод для преобразования метки времени в выбранную вами часовую зону:

    vars.getObject("resultSet").get(0).get("bar").format('yyyy-MM-dd HH:mm:ss.SSSSSSZ', TimeZone.getTimeZone('UTC'))
    

    enter image description here

Дополнительная информация: Отладка JDBCРезультаты сэмплера в JMeter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...