Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
open( filePath, [mode] )
Opens a file, reading all its contents into memory for use in the script.
Note
open()often consumes a large amount of memory because every VU keeps a separate copy of the file in memory.To reduce the memory consumption, we strongly advise the usage of SharedArray for CSV, JSON and other files intended for script parametrization.
Caution
This function can only be called from the init context (aka init code), code in the global context that is, outside of the main export default function { … }.
By restricting it to the init context, we can easily determine what local files are needed to run the test and thus what we need to bundle up when distributing the test to multiple nodes in a clustered/distributed test.
See the example further down on this page. For a more in-depth description, see Test lifecycle.
Returns
[
{
"username": "user1",
"password": "password1"
},
{
"username": "user2",
"password": "password2"
},
{
"username": "user3",
"password": "password3"
}
]import { SharedArray } from 'k6/data';
import { sleep } from 'k6';
const data = new SharedArray('users', function () {
// here you can open files, and then do additional processing or generate the array with data dynamically
const f = JSON.parse(open('./users.json'));
return f; // f must be an array[]
});
export default () => {
const randomUser = data[Math.floor(Math.random() * data.length)];
console.log(`${randomUser.username}, ${randomUser.password}`);
sleep(3);
};import { sleep } from 'k6';
const users = JSON.parse(open('./users.json')); // consider using SharedArray for large files
export default function () {
const user = users[__VU - 1];
console.log(`${user.username}, ${user.password}`);
sleep(3);
}import http from 'k6/http';
import { sleep } from 'k6';
const binFile = open('/path/to/file.bin', 'b');
export default function () {
const data = {
field: 'this is a standard form field',
file: http.file(binFile, 'test.bin'),
};
const res = http.post('https://example.com/upload', data);
sleep(3);
}

