ответ с ошибкой кода 500 после запроса post в jmeter

#ajax #jmeter #http-post #badboy

#ajax #jmeter #http-post #плохой парень

Вопрос:

ну, я записал скрипт с использованием Badboy и экспортировал его в Jmeter. сценарий включает post-запрос, который инициирует файл с именем.

Параметр отправляется вместе с запросом

noCache=1404378079862
{"alf_destination":"workspace://SpacesStore/${UUID}","prop_cm_name":"File _2","prop_cm_title":"","prop_cm_description":""}

Каждый раз, когда я запускаю план тестирования, я получаю ответ с кодом ошибки 500 (внутренняя ошибка сервера) на запрос POST, он выглядит следующим образом

{
"status" :
{
"code" : 500,
"name" : "Internal Error",
"description" : "An error inside the HTTP server which prevented it from fulfilling the request."
},
итак, я использовал chrome developer tool для захвата запроса, и я обнаружил, что когда я попытался создать файл с именем, которое уже существует, сервер ответил кодом ошибки 500 также я обнаружил, что запрос, отправленный jmeter, отличается от того, который я записал с помощью инструмента разработчика hear, отправленного jmeter:

ОПУБЛИКОВАТЬ https://${ServerName}/share/proxy/alfresco/api/type/cm:content/formprocessor

и hear — это тот, который я записал с помощью инструмента разработчика:

СООБЩЕНИЕ https://${ServerName}/share/proxy/alfresco/api/type/cm:content/formprocessor?noCache=1404586721426amp;{«alf_destination»:»workspace://SpacesStore/${uuid}»,»prop_cm_name»:»file_2,»prop_cm_title»:»»,»prop_cm_description»:»»,»prop_cm_content»:» Рамадан карим»,»prop_mimetype»: «текстовый / обычный», «prop_app_editInline»: «true»}

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

и вот полный запрос, сделанный jmeter

ОПУБЛИКОВАТЬ https://${server}/share/proxy/alfresco/api/type/cm:content/formprocessor

Данные POST: noCache=1404586721426amp;{«alf_destination»:»workspace://SpacesStore/${uuid}»,»prop_cm_name»:»file_2,»prop_cm_title»:»»,»prop_cm_description»:»»,»prop_cm_content»:»Ramadan kareem»,»prop_mimetype»:»text/plain»,»prop_app_editInline»:»true»}=

Данные cookie: $Version= 0; JSESSIONID=6508CDFBEF16F2D601CF1E672EB00D62.worker2; $Path=/share/; alfLogin=1404810408; $Path=/share; alfUsername3=jmeter01; $Path=/share; NSC_NzTibsf_TTM = ffffffff09f01c8f45525d5f4f58455e445a4a42378b; $Путь=/

Заголовки запроса: Соединение: поддерживать на открытом воздухе-CSRFToken: ${COOKIE_Alfresco-CSRFToken} Тип содержимого: application / json; кодировка =UTF-8 Длина содержимого: 359 Хост: myshare.kfshrc.edu.sa Пользовательский агент: Apache-HttpClient /4.2.6 (java 1.5)

кто-нибудь может объяснить, почему я получаю эту ошибку?

Комментарии:

1. Можете ли вы получить доступ к «workspace: //SpacesStore /» со своего компьютера??

2. да, я пробовал это как в Chrome, так и в IE9

Ответ №1:

Можете ли вы опубликовать остальную часть stacktrace? Это не раскрывает основную причину, и причина может быть другой.

Я ожидаю, что если вы пытаетесь протестировать систему Alfresco версии 4.1.7 или выше, запрос может завершиться ошибкой из-за защиты фильтра CSRF, которая устанавливается через cookie и должна быть отправлена в Alfresco-CSRFToken заголовке.

Чтобы обойти это, рассмотрите следующее:

  1. Добавьте HTTP Cookie Manager в свой план тестирования
  2. В файле jmeter.properties (находится в папке / bin вашей установки JMeter) определите следующее свойство: CookieManager.save.cookies=true
  3. Перезапустите JMeter (изменение свойства не является динамическим)
  4. Добавьте диспетчер HTTP-заголовков в качестве дочернего элемента запроса, который завершается ошибкой. Заполните его следующим образом:

    • Заголовок 1
      • Имя: Alfresco-CSRFToken
      • Значение: ${__javaScript(decodeURIComponent("${COOKIE_Alfresco-CSRFToken}"),)}
    • Заголовок 2
      • Имя: Content-Type
      • Значение: application/json;charset=UTF-8

Надеюсь, это поможет.

Комментарии:

1. я добавлю больше деталей

Ответ №2:

Это потому, что файл может быть поврежден на стороне сервера. В основном это связано с проблемой на стороне сервера. Попробуйте воспроизвести это на другом сайте.

Комментарии:

1. что вы подразумеваете под «Попыткой воспроизвести это на другом сайте».?

2. Я имею в виду просто протестировать на каком-нибудь другом сайте, чтобы получить результат

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