No results for

Powered byAlgolia
⚠️ This is the archived documentation for k6 v0.46. Go to the latest version.

asyncRequest( method, url, [body], [params] )

ParameterTypeDescription
methodstringRequest method (e.g. 'POST'). Must be uppercase.
urlstring / HTTP URLRequest URL (e.g. 'http://example.com').
body (optional)string / object / ArrayBufferRequest body. Objects will be x-www-form-urlencoded encoded.
params (optional)objectParams object containing additional request parameters.

Returns

TypeDescription
Promise with ResponseHTTP Response object.

Examples

Using http.asyncRequest() to issue a POST request:

import http from 'k6/http';
const url = 'https://httpbin.test.k6.io/post';
export default async function () {
const data = { name: 'Bert' };
// Using a JSON string as body
let res = await http.asyncRequest('POST', url, JSON.stringify(data), {
headers: { 'Content-Type': 'application/json' },
});
console.log(res.json().json.name); // Bert
// Using an object as body, the headers will automatically include
// 'Content-Type: application/x-www-form-urlencoded'.
res = await http.asyncRequest('POST', url, data);
console.log(res.json().form.name); // Bert
}

Using http.asyncRequest() to issue multiple requests, then Promise.race to determine which requests finish first:

import http from 'k6/http';
export default async () => {
const urlOne = `https://httpbin.test.k6.io/delay/${randomInt(1, 5)}`
const urlTwo = `https://httpbin.test.k6.io/delay/${randomInt(1, 5)}`
const urlThree = `https://httpbin.test.k6.io/delay/${randomInt(1, 5)}`
const one = http.asyncRequest('GET', urlOne);
const two = http.asyncRequest('GET', urlTwo);
const three = http.asyncRequest('GET', urlThree);
console.log('Racing:')
console.log(urlOne);
console.log(urlTwo);
console.log(urlThree);
const res = await Promise.race([one, two, three])
console.log('winner is', res.url, 'with duration of', res.timings.duration+'ms');
}
function randomInt(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}