Файлы cookie SameSite в JMeter - PullRequest
       2

Файлы cookie SameSite в JMeter

0 голосов
/ 27 марта 2020

Я разрабатываю тест JMeter для сайта, для которого требуется, чтобы «SameSite по умолчанию cookie» был отключен в Chrome, как показано здесь:

Отключить принудительное использование одного и того же сайта в chrome версия> 80

Тестируемый сайт только что возвращает HTML страниц; у него нет отдельного уровня API. Основным элементом, вызывающим проблемы, является сторонний компонент, встроенный в iframe. Контент iframe использует SSO для аутентификации на основном сайте. В Chrome, если для параметра SameSite установлено значение «По умолчанию», я получаю страницу входа для стороннего компонента, а не вижу визуализацию компонента. Если для параметра SameSite установлено значение «Отключено», то сторонний компонент отображается правильно.

Когда я выполняю свой тест в JMeter, я сталкиваюсь с той же проблемой, с которой сталкиваюсь в Chrome, когда «SameSite by файлы cookie по умолчанию "установлено по умолчанию - в частности, я перенаправлен на страницу входа.

Однако, когда я выполняю ту же последовательность HTTP-запросов в Postman, все работает нормально.

JMeter имеет встроенное поведение повара SameSite ie, и если да, то как его отключить?

ОБНОВЛЕНИЕ: следуя совету Дмитрия, я попробовал все разные менеджеры повара ie.

Я также включил ведение лога cook ie. Если я установлю HTTP Cook ie Manager's Cook ie Policy на значение по умолчанию, атрибут «expires» в файлах cookie вызовет ошибку:

2020-03-27 12:56:58,613 ERROR o.a.j.p.h.c.HC4CookieHandler: Unable to add the cookie
org.apache.http.cookie.MalformedCookieException: Invalid 'expires' attribute: Fri, 03 Apr 2020 17:56:54 GMT
    at org.apache.http.impl.cookie.BasicExpiresHandler.parse(BasicExpiresHandler.java:64) ~[httpclient-4.5.10.jar:4.5.10]
    at org.apache.http.impl.cookie.CookieSpecBase.parse(CookieSpecBase.java:113) ~[httpclient-4.5.10.jar:4.5.10]
    at org.apache.http.impl.cookie.DefaultCookieSpec.parse(DefaultCookieSpec.java:140) ~[httpclient-4.5.10.jar:4.5.10]
    at org.apache.jmeter.protocol.http.control.HC4CookieHandler.addCookieFromHeader(HC4CookieHandler.java:124) [ApacheJMeter_http.jar:5.2.1]

...

Если я установлю политика Cook ie в соответствии со стандартом - «Политика, совместимая с RF C 6265 (профиль совместимости)» для документов HTTPClient - я не вижу сообщений об ошибках cook ie в журнале, но я все еще получить перенаправление на страницу входа.

1 Ответ

1 голос
/ 27 марта 2020

Если тестируемое приложение отправляет искаженные файлы cookie в заголовок Set-Cook ie JMeter может отклонить файлы cookie, которые не соответствуют текущему домену сэмплера HTTP Request или истек или недействительным по любой другой причине.

Вы можете «сказать» JMeter, чтобы он был менее ограничительным, путем:

  1. Выбор более «расслабленного» * ​​1011 * cook ie policy , т.е. netscape в HTTP Cook ie Manager

    enter image description here

  2. Добавить строку CookieManager.check.cookies=true пользователю . файл свойств (для выбора свойства потребуется перезапуск JMeter)

Дополнительная информация: HTTP Cook ie Расширенное использование Manager - Руководство


Если описанные выше шаги не помогли, вы можете:

  • Повысить детализацию ведения журнала JMeter для менеджера HTTP Cook ie и его друзей, добавив следующую строку в log4j2. xml файл:

    <Logger name="org.apache.jmeter.protocol.http.control" level="debug" />
    
  • и, наконец, что не менее важно, вы всегда можете извлечь куки из вышеупомянутого Set-Cookie заголовка, используя, например, Regular Expression Extractor и вручную добавьте их в следующий запрос, используя HTTP Header Manager

...