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。 |
示例
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,
});
}