Некогерентное поведение CXF в тестах JMeter - PullRequest
0 голосов
/ 08 октября 2019

У меня проблема с Apache JMeter, тестирующим Fuse на компьютере моей компании: я работаю с Java 7, JBoss Fuse 6.1.1 и JMEter 3.0 (и 3.2).

У меня есть набор тестовгде

  1. отправляю HTTP-запрос;
  2. развернутое приложение считывает запрос по пути HTTP-запроса;
  3. Он понимает, что я вызываю заглушку в XML;
  4. Приложение прочитало правильный файл в каталоге заглушки;
  5. Приложение следует бизнес-логике.

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

На компьютере моей компании процесс переходит со второго на последний шаг, на последнем этапе я получаю эту ошибку:

ID: 1 Код ответа: 500

Content-Type: text / plain

Заголовки: {/ ** некоторый материал * /}

Полезная нагрузка: не найден модуль записи тела сообщения для класса ответа AnyBusinessProCessResultImpl.

класс AnyBusinessProCessResultImpl - это Java Bean, созданный другими файлами (например, DSL), которые я не могу изменить.

Чтение этот вопрос ,ошибка нравится, когда она возникает из-за маршаллинга / демаршаллинга или неправильного использования Джексона, поэтому может потребоваться кодирование исправления в исходном коде и развертывание новой версии артефакта.

Но эта версия артефактабежит корЕсли говорить прямо в наших ноутбуках, то я думаю, что это проблема JMeter или Fuse (которые одинаковы для 3 рабочих станций). Конфигурация на 3 рабочих станциях одинаковая, главное отличие в том, что у меня нет прав администратора на компьютере компании (я работаю на виртуальной машине), в моем ноутбуке есть, но я предполагаю отправку / получение HTTP-запроса в WindowsРабочая станция 7 работает в пространстве пользователя, без каких-либо прав администратора.

Другая идея - это проблема загрузки библиотек в правильном порядке: возможно, на компьютере компании библиотеки / модули OSGI Fuse, но это кажетсяпредположить, что слишком низкий уровень.

Я заметил, что единственное отличие заключается в заголовке в полезной нагрузке ответа: на компьютере компании отсутствует заголовок о типе содержимого

Content-Type: text/plain

Headers: {/**some stuff*/} 

когда в записных книжках это выглядит как

Content-Type: text/xml

Headers: {blabla, content-type="text/xml", blabla} 

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

У вас есть другое предложение или идеярасследуйте, пожалуйста?

Спасибо

1 Ответ

0 голосов
/ 08 октября 2019

Ваш AnyBusinessProCessResultImpl не принадлежит JMeter, это что-то custom , скорее всего, это некоторая форма Java Class , который используется для генерации тела запроса,

Вам необходимо перепроверить содержимое следующих папок :

  • lib
  • lib / ext
  • lib / junit

и значения следующих свойств

  • search_paths
  • user.classpath

Предполагая, что у вас будет тот же набор библиотек Java в JMeter Classpath - вы сможете получить то же поведение.

Самый простой способ - просто скопировать установку JMeter с одного из компьютеров ваших коллег на ваш компьютер / виртуальную машину.

Также помните, что в соответствии с 9 Easy Solutions для теста нагрузки JMeter «Ошибка памяти» , вы всегда должны использовать последнюю версию JMeter, поэтому рассмотрите возможность обновления до JMeter 5.1.1 (или последняя версия стабильной версии JMeter, доступная на странице Загрузки JMeter ) при следующей доступной возможности.

...