Go load-testing

Open-source Go projects categorized as load-testing

Top 20 Go load-testing Projects

  • k6

    A modern load testing tool, using Go and JavaScript - https://k6.io

  • Project mention: K6: A modern load testing tool, using Go and JavaScript | news.ycombinator.com | 2024-01-08
  • Vegeta

    HTTP load testing tool and library. It's over 9000!

  • Project mention: Netlify just sent me a $104K bill for a simple static site | news.ycombinator.com | 2024-02-26

    Vegeta worth a look if you want something a bit more sophisticated: https://github.com/tsenart/vegeta

  • 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
  • anteon

    Anteon (formerly Ddosify) - Effortless Kubernetes Monitoring and Performance Testing. Available on CLI, Self-Hosted, and Cloud

  • Project mention: 5 Awesome Go Projects To Know Before You Die | /r/golang | 2023-05-05

    DDosify: https://github.com/ddosify/ddosify

  • bombardier

    Fast cross-platform HTTP benchmarking tool written in Go

  • plow

    A high-performance HTTP benchmarking tool that includes a real-time web UI and terminal display

  • ali

    Generate HTTP load and plot the results in real-time

  • speedbump

    TCP proxy for simulating variable, yet predictable network latency :globe_with_meridians::hourglass_flowing_sand:

  • Project mention: FLaNK Stack Weekly 22 January 2024 | dev.to | 2024-01-22
  • SaaSHub

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

    SaaSHub logo
  • cassowary

    :rocket: Modern cross-platform HTTP load-testing tool written in Go (by rogerwelin)

  • kube-burner

    Kubernetes performance and scale test orchestration framework written in golang

  • Pewpew

    Flexible HTTP command line stress tester for websites and web services (by bengadbois)

  • iter8

    Kubernetes release optimizer

  • hargo

    Hargo is a Go library and command line utility that parses HAR files, can convert to curl format, and serve as a load test driver.

  • 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(); }

  • gocannon

    :boom: Performance-focused HTTP load testing tool written in Go

  • spurt

    HTTP stress testing tool that can overload web servers.

  • rip

    Rest in peace(s) - HTTP/UDP load testing tool (by bjarneo)

  • mattermost-load-test-ng

    Mattermost next generation loadtest agent

  • gopayloader

    HTTP/S benchmark/load testing cross-platform tool with optional jwt generation - supports HTTP/1.1, HTTP/2, HTTP/3

  • gorankusu

    The Go module for programmatically run and load testing HTTP services

  • lyra

    A simple, lightweight, and concurrent agent for load simulation and monitoring HTTP test object performance and availability - analyze and monitor performance metrics with configurable virtual users and InfluxDB integration for comprehensive reporting and visualization. (by eelbaz)

  • SaaSHub

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

    SaaSHub logo
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).

Go load-testing related posts

  • K6: A modern load testing tool, using Go and JavaScript

    1 project | news.ycombinator.com | 8 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
  • Under Pressure: Benchmarking Node.js on a Single-Core EC2

    2 projects | dev.to | 2 Dec 2023
  • Deep-dive into Vegeta - HTTP load testing tool and library

    1 project | dev.to | 30 Oct 2023
  • Set Up Tracing for a Node.js Application on AppSignal

    2 projects | dev.to | 7 Jun 2023
  • Self-Hosted, Distributed, No-code Performance Testing Platform

    1 project | /r/InternetIsBeautiful | 26 Apr 2023
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 4 May 2024
    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. Learn more →

Index

What are some of the best open-source load-testing projects in Go? This list will help you:

Project Stars
1 k6 23,393
2 Vegeta 22,745
3 anteon 8,198
4 bombardier 5,276
5 plow 3,799
6 ali 3,638
7 speedbump 1,475
8 cassowary 725
9 kube-burner 449
10 Pewpew 399
11 iter8 250
12 hargo 229
13 xk6-kafka 128
14 gocannon 70
15 spurt 66
16 rip 54
17 mattermost-load-test-ng 53
18 gopayloader 15
19 gorankusu 3
20 lyra 2

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