Params is an object used by the http.* methods that generate HTTP requests. Params contains request-specific options like e.g. HTTP headers that should be inserted into the request.
Name
Type
Description
Params.auth
string
The authentication method used for the request. It currently supports digest, ntlm, and basic authentication methods.
Params.cookies
object
Object with key-value pairs representing request scoped cookies (they won’t be added to VU cookie jar) {cookies: { key: "val", key2: "val2" }}
You also have the option to say that a request scoped cookie should override a cookie in the VU cookie jar: {cookies: { key: { value: "val", replace: true }}}
Params.headers
object
Object with key-value pairs representing custom HTTP headers the user would like to add to the request.
Params.jar
object
http.CookieJar object to override default VU cookie jar with. Cookies added to request will be sourced from this jar and cookies set by server will be added to this jar.
Params.redirects
number
The number of redirects to follow for this request. Overrides the global test option maxRedirects.
Params.tags
object
Key-value pairs where the keys are names of tags and the values are tag values. Response time metrics generated as a result of the request will have these tags added to them, allowing the user to filter out those results specifically, when looking at results data.
Params.timeout
string / number
Maximum time to wait for the request to complete. Default timeout is 60 seconds ("60s"). The type can also be a number, in which case k6 interprets it as milliseconds, e.g., 60000 is equivalent to "60s".
Params.compression
string
Sets whether the request body should be compressed. If set to gzip it will use gzip to compress the body and set the appropriate Content-Length and Content-Encoding headers.
Possible values: gzip, deflate, br, zstd, and any comma-separated combination of them (for stacked compression). The default is no compression.
Params.responseType
string
ResponseType is used to specify how to treat the body of the response. The three options are: - text: k6 will return it as a string. This might not be what you want in cases of binary data as the conversation to UTF-16 will probably break it. This is also the default if discardResponseBodies is set to false or not set at all. - binary: k6 will return an ArrayBuffer object - none: k6 will return null as the body. The whole body will be ignored. This is the default when discardResponseBodies is set to true.
sets a responseCallback only for this request. For performance reasons it’s better to initialize it once and reference it for each time the same callback will need to be used.
Example of custom HTTP headers and tags
A k6 script that will make an HTTP request with a custom HTTP header and tag results data with a specific tag
JavaScript
import http from'k6/http';exportdefaultfunction(){const params ={cookies:{my_cookie:'value'},headers:{'X-MyHeader':'k6test'},redirects:5,tags:{k6test:'yes'},};const res = http.get('https://k6.io', params);}
Example using http.batch() with Params
Here is another example using http.batch() with a Params argument:
import http from'k6/http';exportconst options ={discardResponseBodies:true};exportdefaultfunction(){}exportfunctionsetup(){// 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 =newUint8Array(response.body);// This will output something like `176,61,15,66,233,98,223,196,43,1`
console.log(bodyView);}