#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, он выглядит следующим образом
{
итак, я использовал chrome developer tool для захвата запроса, и я обнаружил, что когда я попытался создать файл с именем, которое уже существует, сервер ответил кодом ошибки 500 также я обнаружил, что запрос, отправленный jmeter, отличается от того, который я записал с помощью инструмента разработчика hear, отправленного jmeter:
"status" :
{
"code" : 500,
"name" : "Internal Error",
"description" : "An error inside the HTTP server which prevented it from fulfilling the request."
},
ОПУБЛИКОВАТЬ 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
заголовке.
Чтобы обойти это, рассмотрите следующее:
- Добавьте HTTP Cookie Manager в свой план тестирования
- В файле jmeter.properties (находится в папке / bin вашей установки JMeter) определите следующее свойство:
CookieManager.save.cookies=true
- Перезапустите JMeter (изменение свойства не является динамическим)
-
Добавьте диспетчер HTTP-заголовков в качестве дочернего элемента запроса, который завершается ошибкой. Заполните его следующим образом:
- Заголовок 1
- Имя:
Alfresco-CSRFToken
- Значение:
${__javaScript(decodeURIComponent("${COOKIE_Alfresco-CSRFToken}"),)}
- Имя:
- Заголовок 2
- Имя:
Content-Type
- Значение:
application/json;charset=UTF-8
- Имя:
- Заголовок 1
Надеюсь, это поможет.
Комментарии:
1. я добавлю больше деталей
Ответ №2:
Это потому, что файл может быть поврежден на стороне сервера. В основном это связано с проблемой на стороне сервера. Попробуйте воспроизвести это на другом сайте.
Комментарии:
1. что вы подразумеваете под «Попыткой воспроизвести это на другом сайте».?
2. Я имею в виду просто протестировать на каком-нибудь другом сайте, чтобы получить результат
3. какова связь между сайтом, который я тестирую, и другими сайтами, я имею в виду, я не понял смысла этого делать