Fortio - Load testing library, command line tool, advanced echo server and web UI in Go

  •        885

Fortio (Φορτίο) started as, and is, Istio's load testing tool and now graduated to be its own project. Fortio runs at a specified query per second (qps) and records an histogram of execution time and calculates percentiles (e.g. p99 ie the response time such as 99% of the requests take less than that number (in seconds, SI unit)). It can run for a set duration, for a fixed number of calls, or until interrupted (at a constant target QPS, or max speed/load per connection/thread).

Fortio also includes a set of server side features (similar to httpbin) to help debugging and testing: request echo back including headers, adding latency or error codes with a probability distribution, tcp echoing, tcp proxying, http fan out/scatter and gather proxy server, GRPC echo/health in addition to http, etc.

https://fortio.org
https://github.com/fortio/fortio

Tags
Implementation
License
Platform

   




Related Projects

K6 - A modern load testing tool, using Go and JavaScript

  •    Go

K6 is a load testing tool built for engineering teams. The k6 API and CLI are easy-to-use, flexible and powerful. Create tests faster with our test builder, recorder or converters. Automate your tests to ensure that your infrastructure and application remain performant. Write tests in Javascript that mimic real-world scenarios. It has HTTP/1.1, HTTP/2, WebSocket and gRPC protocol support.

plow - A high-performance HTTP benchmarking tool with real-time web UI and terminal displaying

  •    Go

Plow is a HTTP(S) benchmarking tool, written in Golang. It uses excellent fasthttp instead of Go's default net/http due to its lightning fast performance. Plow runs at a specified connections(option -c) concurrently and real-time records a summary statistics, histogram of execution time and calculates percentiles to display on Web UI and terminal. It can run for a set duration( option -d), for a fixed number of requests(option -n), or until Ctrl-C interrupted.

Apache JMeter - Pure Java application for load and functional testing

  •    Java

Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.

ddosify - High-performance load testing tool, written in Golang.

  •    Go

✔️ Protocol Agnostic - Currently supporting HTTP, HTTPS, HTTP/2. Other protocols are on the way. ✔️ Different Load Types - Test your system's limits across different load types.

JMeter - Load and Performance tester

  •    Java

JMeter is a pure Java desktop application designed to load test functional behavior and measure performance. It may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types.


ali - Generate HTTP load and plot the results in real-time

  •    Go

ali is a load testing tool capable of performing real-time analysis, inspired by vegeta and jplot. It comes with an embedded terminal-based UI where you can plot the metrics in real-time, so lets you perform real-time analysis on the terminal.

GoBench - HTTP/HTTPS load testing and benchmarking tool

  •    Go

GoBench is a HTTP/HTTPS load testing and benchmarking tool. Its requests hits and requests rate are 5X better than other testing tools.

Grinder - Java Load Testing Framework

  •    Java

The Grinder is a Java load testing framework that makes it easy to run a distributed test using many load injector machines. Load test anything that has a Java API. This includes common cases such as HTTP web servers, SOAP and REST web services, and application servers (CORBA, RMI, JMS, EJBs), as well as custom protocols.

Pylot - Performance & Scalability Testing of Web Services

  •    Python

Pylot is a free open source tool for testing performance and scalability of web services. It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning. Pylot generates concurrent load (HTTP Requests), verifies server responses, and produces reports with metrics. Tests suites are executed and monitored from a GUI or shell/console.

wrk - Modern HTTP benchmarking tool

  •    C

wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It combines a multithreaded design with scalable event notification systems such as epoll and kqueue .An optional LuaJIT script can perform HTTP request generation, response processing, and custom reporting. Details are available in SCRIPTING and several examples are located in scripts/.

OpenSTA - Open Systems Testing Architecture

  •    C++

OpenSTA is a distributed software testing architecture designed around CORBA. The current toolset has the capability of performing scripted HTTP and HTTPS heavy load tests with performance measurements from Win32 platforms. Results and statistics are collected during test runs by a variety of automatic and user controlled mechanisms. These can include scripted timers, SNMP data, Windows Performance Monitor stats and HTTP results & timings.

Siege - Http load tester and benchmarking utility

  •    C

Siege is an open source regression test and benchmark utility. It can stress test a single URL with a user defined number of simulated users, or it can read many URLs into memory and stress them simultaneously. The program reports the total number of hits recorded, bytes transferred, response time, concurrency, and return status. Siege supports HTTP/1.0 and 1.1 protocols, the GET and POST directives, cookies, transaction logging, and basic authentication. Its features are configurable on a per user basis.

Ethr - Ethr is a Network Performance Measurement Tool for TCP, UDP & HTTP.

  •    Go

Ethr is a cross platform network performance measurement tool written in golang. Goal of this project is to provide native tool for network performance measurements for bandwidth, connections/s, packets/s, latency, loss & jitter, across multiple protocols such as TCP, UDP, HTTP, HTTPS, and across multiple platforms such as Windows, Linux and other Unix systems. Ethr takes insipiration from existing open source network performance tools and builds upon those ideas. It is very similar to iPerf3 for bandwidth measurements for TCP. iPerf3 has many more options for doing bandwidth measurements such as throttled testing, richer feature set, while Ethr has support for multiple threads, ability to scale to 1024 or even higher connections, multiple clients to single server etc. It is similar to latte on Windows or sockperf on Linux for doing latency measurements.

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

  •    Go

A modern load testing tool for developers and testers in the DevOps era. k6 is a modern load testing tool, building on Load Impact's years of experience in the load and performance testing industry. It provides a clean, approachable scripting API, local and cloud execution, flexible configuration, with command & control through CLI or a REST API.

dicom - High Performance DICOM Medical Image Parser in Go

  •    Go

This is a library and command-line tool to read, write, and generally work with DICOM medical image files in native Go. The goal is to build a full-featured, high-performance, and readable DICOM parser for the Go community.

Tsung - Distributed Load Testing Tool

  •    Erlang

Tsung is an open-source multi-protocol distributed load testing tool. It can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers. The purpose of Tsung is to simulate users in order to test the scalability and performance of IP based client/server applications. You can use it to do load and stress testing of your servers. Many protocols have been implemented and tested, and it can be easily extended.

boomer - A better load generator for locust, written in golang

  •    Go

Boomer is a better load generator for locust, written in golang. It can spawn thousands of goroutines to run your code concurrently. It will listen and report to the locust master automatically, your test results will be displayed on the master's web UI.

locust - Scalable user load testing tool written in Python

  •    Python

Locust is an easy-to-use, distributed, user load testing tool. It is intended for load-testing web sites (or other systems) and figuring out how many concurrent users a system can handle. The idea is that during a test, a swarm of locusts will attack your website. The behavior of each locust (or test user if you will) is defined by you and the swarming process is monitored from a web UI in real-time. This will help you battle test and identify bottlenecks in your code before letting real users in.

SoapUI - Web Service Testing

  •    Java

soapUI is the world leading Open Source Functional Testing Tool, mainly it is used for Web Service Testing. Its features include Web service testing, Load testing, Functional testing, SOAP recording, Service mocking, Integrated reporting and lot more.

LoadUI - Load Testing Tool

  •    Java

loadUI deliver a visual, drag-and-drop interface which allows you to create, configure and redistribute your Load Tests interactively and in real-time. You can distribute your Load Tests across any number of loadUI Agents on local or remote machines, allowing you to simulate high volume and real-world load with incredible efficiency. It supprots wide range of protocols and technologies from HTTP(S), HTML, SOAP/WSDL and REST to AMF, JDBC, JMS and POX.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.