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 →
Top 20 Go load-testing Projects
-
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.
-
anteon
Anteon (formerly Ddosify) - Effortless Kubernetes Monitoring and Performance Testing. Available on CLI, Self-Hosted, and Cloud
-
plow
A high-performance HTTP benchmarking tool that includes a real-time web UI and terminal display
-
speedbump
TCP proxy for simulating variable, yet predictable network latency :globe_with_meridians::hourglass_flowing_sand:
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
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
-
gopayloader
HTTP/S benchmark/load testing cross-platform tool with optional jwt generation - supports HTTP/1.1, HTTP/2, HTTP/3
-
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
Project mention: K6: A modern load testing tool, using Go and JavaScript | news.ycombinator.com | 2024-01-08
Project mention: Netlify just sent me a $104K bill for a simple static site | news.ycombinator.com | 2024-02-26Vegeta worth a look if you want something a bit more sophisticated: https://github.com/tsenart/vegeta
DDosify: https://github.com/ddosify/ddosify
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(); }
Go load-testing related posts
-
K6: A modern load testing tool, using Go and JavaScript
-
Performance testing Kafka server using xk6-kafka
-
🔥 What is Apache Kafka and how to perform performance tests on it (Part 2) 👨🏻💻
-
Under Pressure: Benchmarking Node.js on a Single-Core EC2
-
Deep-dive into Vegeta - HTTP load testing tool and library
-
Set Up Tracing for a Node.js Application on AppSignal
-
Self-Hosted, Distributed, No-code Performance Testing Platform
-
A note from our sponsor - InfluxDB
www.influxdata.com | 4 May 2024
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