Use SQL databases from k6 tests.
xk6-sql is a Grafana k6 extension that enables the use of SQL databases in k6 tests.
import sql from "k6/x/sql"; // the actual database driver should be used instead of ramsql import driver from "k6/x/sql/driver/ramsql"; const db = sql.open(driver, "roster_db"); export function setup() { db.exec(` CREATE TABLE IF NOT EXISTS roster ( id INTEGER PRIMARY KEY AUTOINCREMENT, given_name VARCHAR NOT NULL, family_name VARCHAR NOT NULL ); `); } export function teardown() { db.close(); } export default function () { let result = db.exec(` INSERT INTO roster (given_name, family_name) VALUES ('Peter', 'Pan'), ('Wendy', 'Darling'), ('Tinker', 'Bell'), ('James', 'Hook'); `); console.log(`${result.rowsAffected()} rows inserted`); let rows = db.query("SELECT * FROM roster WHERE given_name = $1;", "Peter"); for (const row of rows) { console.log(`${row.family_name}, ${row.given_name}`); } } Copy
import sql from "k6/x/sql"; // the actual database driver should be used instead of ramsql import driver from "k6/x/sql/driver/ramsql"; const db = sql.open(driver, "roster_db"); export function setup() { db.exec(` CREATE TABLE IF NOT EXISTS roster ( id INTEGER PRIMARY KEY AUTOINCREMENT, given_name VARCHAR NOT NULL, family_name VARCHAR NOT NULL ); `); } export function teardown() { db.close(); } export default function () { let result = db.exec(` INSERT INTO roster (given_name, family_name) VALUES ('Peter', 'Pan'), ('Wendy', 'Darling'), ('Tinker', 'Bell'), ('James', 'Hook'); `); console.log(`${result.rowsAffected()} rows inserted`); let rows = db.query("SELECT * FROM roster WHERE given_name = $1;", "Peter"); for (const row of rows) { console.log(`${row.family_name}, ${row.given_name}`); } }
Use SQL databases from k6 tests.
xk6-sql is a Grafana k6 extension that enables the use of SQL databases in k6 tests.
Example