First benchmark
Categories:
1. Download latest release and unpack it
wget https://github.com/Hyperfoil/Hyperfoil/releases/download/hyperfoil-all-0.27.1 \
&& unzip hyperfoil-0.27.1.zip \
&& cd <extracted dir>
2. Start Hyperfoil in interactive mode (CLI)
bin/cli.sh
For our first benchmark we’ll start an embedded server (controller) within the CLI:
[hyperfoil]$ start-local
Starting controller in default directory (/tmp/hyperfoil)
Controller started, listening on 127.0.0.1:41621
Connecting to the controller...
Connected!
3. Upload the minimalistic benchmark and run it
As you can see below, the benchmark is really minimalistic as it is doing only single request to http://hyperfoil.io
.
# This is the name of the benchmark. It's recommended to keep this in sync with
# name of this file, adding extension `.hf.yaml`.
name: single-request
# We must define at least one HTTP target, in this case it becomes a default
# for all HTTP requests.
http:
host: http://hyperfoil.io
# Simulation consists of phases - potentially independent workloads.
# We'll discuss phases more in detail in next quickstarts.
phases:
# `example` is the name of the single phase in this benchmark.
- example:
# `atOnce` with `users: 1` results in running the scenario below just once
atOnce:
users: 1
scenario:
# The only sequence in this scenario is called `test`.
- test:
# In the only step in this sequence we'll do a HTTP GET request
# to `http://hyperfoil.io/`
- httpRequest:
GET: /
# Inject helpers to make this request synchronous, i.e. keep
# the sequence blocked until Hyperfoil processes the response.
sync: true
Create the same benchmark in your local environment or download it.
After that, upload it using the upload
command as follows:
[hyperfoil@in-vm]$ upload .../single-request.hf.yaml
Loaded benchmark single-request, uploading...
... done.
[hyperfoil@in-vm]$ run single-request
Started run 0001
Run 0001, benchmark single-request
Agents: in-vm[STARTING]
Started: 2019/11/15 16:11:43.725 Terminated: 2019/11/15 16:11:43.899
<span class="hfcaption">NAME STATUS STARTED REMAINING COMPLETED TOTAL DURATION DESCRIPTION
example TERMINATED 16:11:43.725 16:11:43.899 174 ms (exceeded by 174 ms) 1 users at once
4. Check out performance results:
[hyperfoil@in-vm]$ stats
Total stats from run 000A
<span class="hfcaption">PHASE METRIC REQUESTS MEAN p50 p90 p99 p99.9 p99.99 2xx 3xx 4xx 5xx CACHE TIMEOUTS ERRORS BLOCKED
example test 1 172.49 ms 173.02 ms 173.02 ms 173.02 ms 173.02 ms 173.02 ms 0 1 0 0 0 0 0 0 ns
Doing one request is not much of a benchmark and the statistics above are moot, but hey, this is a quickstart.
In the future you might find editing with schema useful but at this point any editor with YAML syntax highlighting will do the job.
Ready? Let’s continue with something a bit more realistic…
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.