k6

Top 13 k6 Open-Source Projects

  • k6-reporter

    Output K6 test run results as formatted & easy to read HTML reports

  • xk6-browser

    k6 extension that adds support for browser automation and end-to-end web testing via the Chrome Devtools Protocol

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • postman-to-k6

    Converts Postman collections to k6 script code (by apideck-libraries)

  • Project mention: Hurl 4.0.0 | news.ycombinator.com | 2023-06-30

    Have you tried https://k6.io/ ? (Full disclosure: I'm one of the maintainers.)

    It allows you to write load/performance tests in JS, commit them to your repo, easily automate them in CI, send metrics to several backends, use protocols besides HTTP, with a modern CLI, and many more features.

    There's also a Postman-to-k6 converter[1]. The conversion might not be perfect, but it will give you a head start.

    Note that the k6 philosophy is for developers to write these tests, similarly to how you write unit/integration tests, and to break the classic QA-dev cycle.

    I don't want to steal Hurl's thunder, it does look great, but it's limited in features compared to existing peformance testing tools, and I'd personally rather write tests in a programming language, than in a bespoke text format.

    [1]: https://github.com/apideck-libraries/postman-to-k6

  • xk6

    Build k6 with extensions

  • xk6-kafka

    k6 extension to load test Apache Kafka with support for various serialization formats, SASL, TLS, compression, Schema Registry client and beyond

  • Project mention: Performance testing Kafka server using xk6-kafka | dev.to | 2024-01-01

    import { Writer, Reader, SCHEMA_TYPE_STRING, SchemaRegistry, GROUP_BALANCER_ROUND_ROBIN, BALANCER_ROUND_ROBIN, } from "k6/x/kafka"; import { check, sleep } from "k6"; const bootstrapServers = [ 'kafka-bootsrap-1:9001', ]; let vus_amount = 3; let total_written = 0; let total_read = 0; export const options = { vus: vus_amount, iterations: "3", thresholds: { kafka_writer_error_count: ["count == 0"], kafka_reader_error_count: ["count == 0"], }, }; const topicName = "my-topic"; const schemaRegistry = new SchemaRegistry(); const producer = new Writer({ brokers: bootstrapServers, topic: topicName, balancer: BALANCER_ROUND_ROBIN, // or pick another balancer https://github.com/mostafa/xk6-kafka/blob/main/api-docs/index.d.ts#L66 // ... auth config }); export function teardown(data) { producer.close(); } export default function () { const consumer = new Reader({ brokers: bootstrapServers, // it is important to set groupID, groupTopics and groupBalancers when using Kafka bootstrap server // topic ReaderConfig param doesn't quite work with bootstrap server groupID: topicName + "-group", groupTopics: [topicName], groupBalancers: [GROUP_BALANCER_ROUND_ROBIN], // or pick different balancer https://github.com/mostafa/xk6-kafka/blob/main/api-docs/index.d.ts#L75 }); let messageAmount = 1000; if (__VU == 1) { console.log('VU 1, writing messages. Iter ' + __ITER); for (let index = 0; index < messageAmount; index++) { let messages = [ { value: schemaRegistry.serialize({ data: "test-value-string-" + index + "-vu-" + __VU + "-iter-" + __ITER, schemaType: SCHEMA_TYPE_STRING, }), }, ]; producer.produce({ messages: messages }); total_written += messages.length; } } let consumerMsgAmount = Math.floor(messageAmount / vus_amount); let messages = consumer.consume({ limit: consumerMsgAmount}); total_read += messages.length; console.log("Amount of msgs received: " + messages.length + ", VU " + __VU + ", iter " + __ITER); check(messages, { "all messages returned": (msgs) => msgs.length == consumerMsgAmount, }); let firstMessageValue = schemaRegistry.deserialize({ data: messages[0].value, schemaType: SCHEMA_TYPE_STRING, }); let lastMessageValue = schemaRegistry.deserialize({ data: messages[consumerMsgAmount - 1].value, schemaType: SCHEMA_TYPE_STRING, }); check(messages[0], { "Topic equals to": (msg) => msg["topic"] == topicName }); console.log("First msg value " + firstMessageValue + ", offset" + messages[0]["offset"] + ", partition " + messages[0]["partition"] + ", VU " + __VU + ", iter " + __ITER); console.log("Last msg value " + lastMessageValue + ", offset" + messages[consumerMsgAmount - 1]["offset"] + ", partition " + messages[0]["partition"] + ", VU " + __VU + ", iter " + __ITER); consumer.close(); }

  • xk6-sql

    k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)

  • Project mention: Utilizando módulos do xk6 com k6 | dev.to | 2023-07-05

    xk6-sql

  • xk6-output-influxdb

    k6 extension to output real-time test metrics to an InfluxDB 2.x database.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • k8s-WASM-demo

    PoC created to measure the performance provided by WASM

  • xk6-cable

    A k6 extension for testing Action Cable and AnyCable functionality

  • xk6-redis

    A k6 extension to test the performance of a Redis instance.

  • xk6-notification

    A k6 extension for creating notifications.

  • Project mention: Enviando notificações com xk6 notification ✉ | dev.to | 2024-04-17
  • denoload

    Modern load testing tool using JavaScript and TypeScript, inspired by k6.

  • Project mention: Building an online image compressor | dev.to | 2024-01-09

    www.bulkcompress.photos is just an optimized GUI of the above function. I’ve also added support for resizing and converting images into another format. Finally, to improve performance, I used the worker pool I’ve developed for my load testing tool: https://github.com/denoload/denoload.

  • k6-examples

    Project using K6 and Javascript to create scenarios of Load and Stress Test

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

k6 related posts

  • Building an online image compressor

    5 projects | dev.to | 9 Jan 2024
  • Performance testing Kafka server using xk6-kafka

    1 project | dev.to | 1 Jan 2024
  • 🔥 What is Apache Kafka and how to perform performance tests on it (Part 2) 👨🏻‍💻

    2 projects | dev.to | 18 Dec 2023
  • Utilizando módulos do xk6 com k6

    6 projects | dev.to | 5 Jul 2023
  • Get Started with xk6-browser

    1 project | dev.to | 11 Jan 2023
  • HTTP networking benchmark shows Rust in WasmEdge outperforms Rust in Linux container by 10x

    1 project | /r/cncfprojects | 28 Dec 2022
  • HTTP networking benchmark shows Rust in WasmEdge outperforms Rust in Linux container by 10x

    1 project | /r/kubernetes | 28 Dec 2022
  • A note from our sponsor - SaaSHub
    www.saashub.com | 1 May 2024
    SaaSHub helps you find the best software and product alternatives Learn more →

Index

What are some of the best open-source k6 projects? This list will help you:

Project Stars
1 k6-reporter 352
2 xk6-browser 313
3 postman-to-k6 207
4 xk6 175
5 xk6-kafka 126
6 xk6-sql 88
7 xk6-output-influxdb 54
8 k8s-WASM-demo 26
9 xk6-cable 23
10 xk6-redis 23
11 xk6-notification 16
12 denoload 8
13 k6-examples 1

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com