Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dkorittki/loago
Distributed load test utility based on Chromium browsers
https://github.com/dkorittki/loago
chrome chromium devtools-protocol go grpc load-testing
Last synced: about 2 months ago
JSON representation
Distributed load test utility based on Chromium browsers
- Host: GitHub
- URL: https://github.com/dkorittki/loago
- Owner: dkorittki
- License: apache-2.0
- Archived: true
- Created: 2020-07-22T09:30:19.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-11-30T21:23:23.000Z (almost 4 years ago)
- Last Synced: 2024-06-21T09:58:53.617Z (5 months ago)
- Topics: chrome, chromium, devtools-protocol, go, grpc, load-testing
- Language: Go
- Homepage:
- Size: 150 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Loago
Loago is a scaleable webapp loadtest utility based on Chrome/Chomium browser fleets.
## Description
Use real Chromium-based browsers to loadtest your webapp/website.
Loago enables website load tests using a fleet of Chromium browser processes to reliable
recreate user behaviour.
Real users use real browsers to visit webapps. And instead of measuring the maximum amount
of requests your webapp can handle, it lets you decide how many users you wan't to simulate concurrently.
This gives devops and SRE's an indicator of how many users their webapp can handle,
much better than simply saying how many HTTP requests it can take without any real-world cohesion.
To accurately simulate real browser behaviour, a real browser is used: Chromium (or Chromium based browsers implementing the DevTools API).
This makes sure the applied load behaves just like a real user, including browser caching and parallel asset loading.Loago provides two modes: `instructor` and `worker`.
In instructor-mode you configure a loadtest, instruct one or more workers to
perform this loadtest and save the results.In worker-mode Loago actually performs the requests coming from an Loago
instructor instance.This allows for horizontal, geographically spread load scaling.
## Key features
- Efficient client-server communication via protobuf+gRPC including TLS encryption
- Authentication currently implemented as basic auth token
- Horizontal scaling, since one instructor can handle multiple workers
- Written in Go
- Scales as much as your memory does, though it's not as bad as you might think
- Random, but weighted, HTTP requests on specific URL's
- Every response contains TTFB, HTTP status code and message and will be send to the instructor## Project status
:warning:
The loago project is in it's (very) early stage and should not be used on real websites or webapps!
But since there is no instructor mode available yet, this should be pretty inconvenient anyway ;-).## Installation
Install via `go get`:
```shell script
go get github.com/dkorittki/loago
```## Usage
## worker mode
Call `loago serve` from command line with these flags, to start Loago in worker mode:
`-adress`: listen address, e.g. `127.0.0.1` or `0.0.0.0` (default)
`-port`: listen port (default 50051)
`-cert`: path to TLS certificate
`-key`: path to TLS private key
`-secret`: basic auth secret for authentication