artillery: Scenario is not replaying set cookies

I’m currently running 1.6.0-23.

I am assuming I am just misunderstanding something but I can’t get auth cookies that the server is setting to be replayed by subsequent requests later in the scenario. When a user successfully logs into our api we return an HttpOnly cookie called Fuze. So I have the following configuration:

config:
  payload:
    path: "logins.csv"
    fields:
      - "username"
      - "password"
  phases:
    - duration: 300
      arrivalRate: 1
scenarios:
  - name: "Test"
    flow:
      - post:
          url: "/login"
          json:
            Email: "{{ username }}"
            Password: "{{ password }}"            
      - get:
          url: "/message/get-message-count" 

With debug output I"m getting the following:

\   http request: {
  "url": "http://localhost:46551/login",
  "method": "POST",
  "headers": {
    "user-agent": "Artillery (https://artillery.io)"
  },
  "json": {
    "Email": "dev",
    "Password": "xxx"
  }
} +807ms
  http:response {
  http:response   "cache-control": "no-cache",
  http:response   "pragma": "no-cache",
  http:response   "content-type": "application/json; charset=utf-8",
  http:response   "expires": "-1",
  http:response   "server": "Microsoft-IIS/10.0",
  http:response   "unauthenticateduser": "true",
  http:response   "x-aspnet-version": "4.0.30319",
  http:response   "set-cookie": [
  http:response     "Fuze=66DEF75C1CFA4A5691E24A4D37BA7AFF837C5A9F6BC255BAA25DA894080720F6C6C12917FAB059C3D0DB80A204E9FAEB9F95860B30D37C807A66ECAB5747ADD788E3AE01D1F608DCE473933779BA060670B9B1915363EAD7073A94A0C1D0E5A0FDEEA5E45720E3B38EE155E9718C91A6A11084CED1BE5D67ABF00F61E21AB1C10BD1DF71076112F590F767EC57B7E510100C6824FC73C14ED54E60CC70800A6B15A7ACCA; domain=localhost; expires=Tue, 11-Sep-2018 22:36:22 GMT; path=/; HttpOnly",
  http:response     "profile=29; domain=localhost; path=/; HttpOnly"
  http:response   ],
  http:response   "x-sourcefiles": "=?UTF-8?B?QzpcY29kZVx3b3JrXGNhcmVzdGFja1xDYXJlU3RhY2suVW5pZmllZC5tc2hhcGlyb1xDYXJlU3RhY2suQmFja2VuZFxDYXJlU3RhY2suV2ViXGxvZ2lu?=",
  http:response   "x-powered-by": "ASP.NET",
  http:response   "date": "Tue, 11 Sep 2018 22:00:21 GMT",
  http:response   "content-length": "42"
  http:response } +1ms
  http:response {
  http:response   "Version": "v2.7.0",
  http:response   "IsLoginSuccess": true
  http:response } +16ms
  http captures and matches: +2ms
  http {} +1ms
  http {} +2ms
  http request: {
  "url": "http://localhost:46551/message/get-message-count",
  "method": "GET",
  "headers": {
    "user-agent": "Artillery (https://artillery.io)"
  }
} +14ms
  http:response {
  http:response   "cache-control": "no-cache",
  http:response   "pragma": "no-cache",
  http:response   "content-type": "application/json; charset=utf-8",
  http:response   "expires": "-1",
  http:response   "server": "Microsoft-IIS/10.0",
  http:response   "unauthenticateduser": "true",
  http:response   "x-aspnet-version": "4.0.30319",
  http:response   "x-sourcefiles": "=?UTF-8?B?QzpcY29kZVx3b3JrXGNhcmVzdGFja1xDYXJlU3RhY2suVW5pZmllZC5tc2hhcGlyb1xDYXJlU3RhY2suQmFja2VuZFxDYXJlU3RhY2suV2ViXG1lc3NhZ2VcZ2V0LW1lc3NhZ2UtY291bnQ=?=",
  http:response   "x-powered-by": "ASP.NET",
  http:response   "date": "Tue, 11 Sep 2018 22:00:21 GMT",
  http:response   "content-length": "61"
  http:response } +1ms
  http:response "{\"Message\":\"Authorization has been denied for this request.\"}" +2ms
  http captures and matches: +8ms
  http {} +2ms
  http {} +1ms

From this it shows artillery submitting a request to /login and the server response containing a Fuze cookie. However the next request in the same scenario shows no cookies being sent which results in a 401 being returned (which is expected when not logged in).

Reading the documentation shows

Cookies are remembered and re-used by individual virtual users.

This makes me think that any cookie that the server sets should be automatically replayed by Artillery. Am I missing something?

About this issue

  • Original URL
  • State: open
  • Created 6 years ago
  • Reactions: 2
  • Comments: 18 (8 by maintainers)

Most upvoted comments

hi @johnoraclestites 👋 that behavior is indeed expected. cookies would be considered virtual user-specific data and as such do not get passed from a before block to individual VUs.