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

Фотография

Добавление 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К   3 Количество загрузок:

 

 

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

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

 

 

 

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К   1 Количество загрузок:

 

 

Добавил 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К   1 Количество загрузок:

 

 

В запрос, в которой хотел поместить 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К   1 Количество загрузок:

 

 

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

 

 

 

 


  • 0

#2 Lzk

Lzk

    Специалист

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

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

props.get("session_id")

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


  • 0

#3 fesd

fesd

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

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

Отправлено 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


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

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