Params
Params 是 http.* 方法用于生成 HTTP 请求的对象。Params 包含特定于请求的选项,例如应插入请求中的 HTTP 头部信息。
名称 | 类型 | 描述 |
---|---|---|
Params.auth | string | 请求使用的认证方法。当前支持 digest 、ntlm 和 basic 认证方法。 |
Params.cookies | object | 包含键值对的对象,表示请求范围内的 cookies(它们不会添加到 VU cookie jar 中){cookies: { key: "val", key2: "val2" }} 您还可以选择让请求范围内的 cookie 覆盖 VU cookie jar 中的 cookie {cookies: { key: { value: "val", replace: true }}} |
Params.headers | object | 包含键值对的对象,表示用户希望添加到请求中的自定义 HTTP 头部信息。 |
Params.jar | object | http.CookieJar 对象,用于覆盖默认的 VU cookie jar。添加到请求中的 cookies 将从此 jar 中获取,由服务器设置的 cookies 将添加到此 jar 中。 |
Params.redirects | number | 此请求要遵循的重定向次数。覆盖全局测试选项 maxRedirects 。 |
Params.tags | object | 键值对,其中键是标签名称,值是标签值。由请求生成的响应时间指标将添加这些标签,允许用户在查看结果数据时专门过滤出这些结果。 |
Params.timeout | string / number | 等待请求完成的最大时间。默认超时时间为 60 秒 ("60s" )。类型也可以是一个数字,在这种情况下 k6 将其解释为毫秒,例如 60000 等效于 "60s" 。 |
Params.compression | string | 设置是否应压缩请求体。如果设置为 gzip ,将使用 gzip 压缩请求体,并设置相应的 Content-Length 和 Content-Encoding 头部信息。可能的值: gzip 、deflate 、br 、zstd ,以及它们的任意逗号分隔组合(用于堆叠压缩)。默认不进行压缩。 |
Params.responseType | string | ResponseType 用于指定如何处理响应体。有三个选项: - text: k6 将其作为字符串返回。对于二进制数据,转换为 UTF-16 可能会破坏数据,这可能不是您期望的。如果 discardResponseBodies 设置为 false 或未设置,这也是默认值。 - binary : k6 将返回一个 ArrayBuffer 对象- none : k6 将返回 null 作为 body。整个 body 将被忽略。当 discardResponseBodies 设置为 true 时,这是默认值。 |
Params.responseCallback | expectedStatuses | 仅为此请求设置一个 responseCallback。出于性能考虑,最好将其初始化一次,并在每次需要使用相同回调时引用它。 |
自定义 HTTP 头部信息和标签示例
一个 k6 脚本,将发送带有自定义 HTTP 头部信息的 HTTP 请求,并使用特定标签标记结果数据
import http from 'k6/http';
export default function () {
const params = {
cookies: { my_cookie: 'value' },
headers: { 'X-MyHeader': 'k6test' },
redirects: 5,
tags: { k6test: 'yes' },
};
const res = http.get('https://k6.io', params);
}
使用带有 Params 的 http.batch() 示例
这是使用带 Params
参数的 http.batch() 的另一个示例
import http from 'k6/http';
const url1 = 'https://quickpizza.grafana.com/api/get';
const url2 = 'https://quickpizza.grafana.com/api/delete';
const apiToken = 'f232831bda15dd233c53b9c548732c0197619a3d3c451134d9abded7eb5bb195';
const requestHeaders = {
'User-Agent': 'k6',
'Authorization': 'Token ' + apiToken,
};
export default function () {
const res = http.batch([
{ method: 'GET', url: url1, params: { headers: requestHeaders } },
{ method: 'GET', url: url2 },
]);
}
覆盖 discardResponseBodies 的示例
import http from 'k6/http';
export const options = { discardResponseBodies: true };
export default function () {}
export function setup() {
// Get 10 random bytes as an ArrayBuffer. Without the responseType the body
// will be null.
const response = http.get('https://quickpizza.grafana.com/api/bytes/10', {
responseType: 'binary',
});
// response.body is an ArrayBuffer, so wrap it in a typed array view to access
// its elements.
const bodyView = new Uint8Array(response.body);
// This will output something like `176,61,15,66,233,98,223,196,43,1`
console.log(bodyView);
}