Тесты JMeter в режиме без графического интерфейса не заслуживают доверия - PullRequest
0 голосов
/ 26 июня 2018

Скрипты тестирования в графическом интерфейсе отлично работают, но не в режиме без графического интерфейса. Изображение, показывающее выполнение теста терминала

Пояснение: У меня есть 3 группы потоков в плане тестирования, где первый Thread Group создает 3 .csv файлов и, как ожидается, будет передавать данные из файлов CSV в second Thread Group.

В течение нескольких тестовых прогонов режим без графического интерфейса работал отлично, но затем такие тесты периодически [Терминал, показывающий тестовый прогон], вообще не создает файлы CSV, а также, иногда третья группа потоков вообще не выполняется.

T проблема Я заметил:

  1. Во время тестов NOn-GUI файлы не создавались, поэтому следующие группы потоков не смогли подобрать и использовать переменные внутри файла CSV, а также

  2. Второй вариант: я сохраняю пути к папкам и файлам в $ {__ setProperty (prop_folder_Path, $ {File_Path})} и получение реквизита. ${__property(prop_folder_Path)} в другой группе потоков -> Иногда эта функция не работает и файлы сохраняются в /bin Directory

    Есть ли способ использовать значение ${__property(prop_folder_Path)} в BeanShell POStProcessor?

Я считаю, что все, что работает в GUI, должно работать так же и в Non-GUI, я прав?

Я только что заметил, что выходные файлы создаются в папке / bin , как показано здесь при выполнении тестов в NOn-GUI

Любые предложения, чтобы это исправить. Спасибо

1 Ответ

0 голосов
/ 27 июня 2018

Я ожидаю, что создание ваших файлов ".csv" где-то не получится, поэтому 2-я группа потоков не может работать из-за отсутствующих файлов.

JMeter не имеет встроенных функций для записи чего-либо в файл, поэтому я думаю, что вы реализовали некоторую пользовательскую логику, используя, например, JSR223 Scripting , которая не работает. Причины могут быть в:

  1. Если вы запускаете JMeter из другой папки, файлы .csv могут быть созданы в другом месте, попробуйте использовать полные пути на всякий случай.
  2. Режим без графического интерфейса пользователя, как правило, работает быстрее, чем режим графического интерфейса пользователя, поэтому это может быть связано с проблемой многопоточности, т. Е. Когда несколько потоков пытаются одновременно записать данные в один и тот же файл и конфликтуют или производят некорректно сформированные данные.

В обоих случаях ответ будет находиться в файле jmeter.log , проверьте его на наличие подозрительных записей и устраните причины.


В общем, использование файлов для передачи данных между группами потоков не лучшая идея, я бы рекомендовал делать это в памяти, например:

  1. В 1-й группе потоков используйте функцию __setProperty () для преобразования данных, которые вы храните в файле CSV, в свойства JMeter, такие как:

    ${__setProperty(foo,bar,)}
    
  2. Во 2-й группе потоков используйте функцию __P () для чтения данных, таких как:

    ${__P(foo,)}
    

Дополнительная информация: Knit One Pearl Two: как использовать переменные в разных группах потоков

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