Перейти к содержимому

Selenium WebDriver: полное руководство
онлайн, начало 19 октября
Логи как инструмент тестировщика
онлайн, начало 22 октября
Школа для начинающих тестировщиков
онлайн, начало 122 октября
Тестирование REST API
онлайн, начало 22 октября
Фотография

Добавление cookie в заросы для выполнения авторизации


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 George010388

George010388

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Иванов Георгий

Отправлено 27 Февраль 2018 - 10:05

Коллеги, добрый день

 

Возникли проблема с  передачей cookie 

 

Необходимо извлечь cookie из response и подставить в request

 

Использую систему ubuntu 16.04 LTS

 

apache-jmeter-3.0

 

1. В настройках jmeter.properties установил:

 

CookieManager.delete_null_cookies=false

 

CookieManager.save.cookies=true

 

CookieManager.check.cookies=false

 

Прикрепленный файл  Selection_009.png   101,88К   0 Количество загрузок:

 

 

2. Добавил HTTP Cookie Manager поверх  Thread group

Прикрепленный файл  HTTP Cookie Manager.png   217,95К   0 Количество загрузок:

 

 

 

3.  В Response

 

Response headers:
HTTP/1.1 200 OK
Date: Tue, 27 Feb 2018 08:50:52 GMT
Connection: Keep-Alive
Content-Type: application/json
Cache-Control: no-store, no-cache, private
Pragma: no-cache
Content-Length: 307
Content-Encoding: gzip


HTTPSampleResult fields:
ContentType: application/json
DataEncoding: null

 

Response Data:

 

{
    "state" : 1,
    "error" : {
        "code" : 0
    },
    "queries" : [
        {
            "uuid" : "00000000-00000000-00000000-00000000",
            "command" : {
                "plm_type_code" : 205,
                "state" : 3,
                "session_id" : "372276a0279caee08057ff61d1d173c9b74c76374ab8742354f2407d909da3e93b944e7fef90bb56cdddb40224aba3bbb54a148a6a859fb641af5cf90ce97",
                "manager_uuid" : "4f56d703-4f03ab59-5748518b-46bb701b",
                "version" : "5.1.9",
                "new_version" : ""
            }
        }
    ],
    "has_undo" : false,
    "has_redo" : false
}

 

 

4 В следующем Post Request:

 

POST data:
{"state":0,"session":"","queries":[{"uuid":"9aa29562-bb29167d-ee19049b-c39d9f5c","command":{"plm_type_code":206,"state":1}}]}

[no cookies]

Request Headers:
Connection: keep-alive
Referer: http://192.168.XX.XXX:30000/
Accept-Language: ru,en-US;q=0.7,en;q=0.3
X-Requested-With: XMLHttpRequest
Content-Type: application/json
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0
Accept: application/json, text/javascript, */*; q=0.01
Content-Length: 125
Host: 192.168.88.104:30000

 

 

 

Необходимо подставлять значение session_id в последующие POST Request

 

В консоли браузера:

В request подставляется значение session_id

 

Прикрепленный файл  Post Request.png   421,06К   0 Количество загрузок:

 

 

Добавил BeanShell PostProcessor в запрос, из которого хочу извлечь cookie:

 

import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
props.put("session","${session_id}");

 

Прикрепленный файл  BeenShell PostProcessor.png   252,8К   0 Количество загрузок:

 

 

В запрос, в которой хотел поместить cookie добавил BinShell PreProcessor

 

import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;


CookieManager manager = sampler.getCookieManager();
Cookie cookie1 = new Cookie("session_id",props.get("session"),"192.168.88.104","/query/query.php?",false,-1);
manager.add(cookie1);

 

Прикрепленный файл  BinnShell PreProcessor.png   357,06К   0 Количество загрузок:

 

 

В результате cookie не перадются в запросе:

 

Прикрепленный файл  View Result Tree.png   308,94К   0 Количество загрузок:

 

 

Буду  благодарен любым советам

 

 

 

 


  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 16 Март 2018 - 09:16

props.get("session_id")

для получения значения переменной. Но вообще можно сделать все проще через интерфейс


  • 0

#3 fesd

fesd

    Опытный участник

  • Members
  • PipPipPipPip
  • 261 сообщений

Отправлено 16 Март 2018 - 09:47

Если я правильно понял задачу, то городить что-то с помощью beanshell не требуется.

 

1) Один из способов описан тут в пункте 2:

https://www.blazemet...-not-cookie-jar

"The names of the cookies contain the prefix "COOKIE_" before they are stored (this avoids accidental corruption of local variables)"

2) Также можно сохранять в переменную с помощью http://jmeter.apache...ssion_Extractor

 


  • 0


Тестирование производительности (JMeter)
онлайн, начало 2 ноября
Тестирование удобства использования
онлайн, начало 24 октября
Тестирование REST API
онлайн, начало 22 октября
Тестирование веб-приложений 2.0
онлайн, начало 16 ноября



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале