菜单
开源 RSS

CookieJar

CookieJar 是一个用于存储服务器设置、客户端添加或两者兼有的 Cookie 的对象。正如使用 Cookies 的操作指南所述,k6 默认会自动处理 Cookie。但是,如果您需要对 Cookie 进行更多控制,则可以创建自己的 Cookie Jar,并将其选为活动 Jar(而不是 k6 创建的默认 Jar)用于一个或多个请求。

方法描述
cookiesForURL(url)获取 Cookie 对象,其中键为 cookie 名称,值为一个数组。
set(url, name, value, [options])通过指定名称、值以及其他可选设置(如域、路径等)来在 jar 中设置 cookie。
clear(url)删除给定 URL 的所有 cookie。
delete(url, name)删除给定 URL 中 name 为指定的 cookie。

示例

JavaScript
import http from 'k6/http';
import { check } from 'k6';

export default function () {
  const res1 = http.post('https://quickpizza.grafana.com/api/cookies?my_cookie=hello%20world', {
    redirects: 0,
  });
  const jar = http.cookieJar();
  const cookies = jar.cookiesForURL('https://quickpizza.grafana.com/api/cookies');
  check(res1, {
    "has cookie 'my_cookie'": (r) => cookies.my_cookie.length > 0,
    'cookie has correct value': (r) => cookies.my_cookie[0] === 'hello world',
  });

  jar.clear('https://quickpizza.grafana.com/api/cookies');

  const res2 = http.get('https://quickpizza.grafana.com/api/cookies');
  check(res2, {
    'has status 200': (r) => r.status === 200,
    "hasn't cookie 'my_cookie'": (r) => r.json().cookies.my_cookie == null,
  });
}