Packages

Mix tasks for generating load tests, installing and invoking k6

Current section

Files

Jump to
k6 priv templates websocket.js
Raw

priv/templates/websocket.js

import ws from "k6/ws";
import { check } from "k6";
// See https://k6.io/docs/using-k6/options/#using-options for documentation on k6 options
export const options = {
vus: 10,
duration: '30s',
};
export default function () {
// To set dynamic (e.g. environment-specific) configuration, pass it either as environment
// variable when invoking k6 or by setting `:k6, env: [key: "value"]` in your `config.exs`,
// and then access it from `__ENV`, e.g.: `const url = __ENV.url`
const url = "<%= @url %>";
const params = { tags: { my_tag: "hello" } };
// See https://k6.io/docs/using-k6/protocols/websockets/ for documentation on k6 and websockets
const res = ws.connect(url, params, function (socket) {
socket.on("open", () => console.log("connected"));
socket.on("message", (data) => console.log("Message received: ", data));
socket.on("close", () => console.log("disconnected"));
});
check(res, { "status is 101": (r) => r && r.status === 101 });
}