- Overview
- Getting started
- How To...
- User Guide
- Migration
-
Reference
-
Steps
- addItem
- addToInt
- addToSharedCounter
- awaitAllResponses
- awaitDelay
- awaitInt
- awaitVar
- breakIfFinished
- breakSequence
- clearHttpCache
- conditional
- fail
- foreach
- getIndex
- getItem
- getSharedCounter
- getSize
- hotrodRequest
- httpRequest
- json
- log
- loop
- markRequestInvalid
- newSequence
- noop
- publishAgentData
- publishGlobalCounters
- pullSharedMap
- pushSharedMap
- randomCsvRow
- randomFile
- randomInt
- randomItem
- randomUUID
- readAgentData
- removeItem
- restartSequence
- scheduleDelay
- set
- setInt
- setItem
- setSharedCounter
- stop
- stopwatch
- stringToInt
- template
- thinkTime
- timestamp
- unset
-
Processors
- addItem
- addToInt
- addToSharedCounter
- array
- clearHttpCache
- closeConnection
- collection
- conditional
- count
- fail
- getIndex
- getItem
- getSharedCounter
- getSize
- gzipInflator
- json
- log
- logInvalid
- markRequestInvalid
- newSequence
- parseHtml
- publishAgentData
- publishGlobalCounters
- queue
- readAgentData
- removeItem
- restartSequence
- set
- setInt
- setItem
- setSharedCounter
- store
- storeInt
- stringToInt
- unset
- Actions
-
Steps
- Custom extensions
- Controller API
- Architecture
- Release notes
Getting started: Complex workflow
The previous example was the first ‘real’ benchmark, but it didn’t do anything different from what you could run through wrk
, ab
, siege
or similar tools.
Of course, the results were not suffering from the coordinated omission problem, but Hyperfoil can do more. Let’s try a more complex scenario, choose-movie.hf.yaml:
Start the server and fire the scenario the usual way:
> podman run --rm -d -p 8080:8083 quay.io/hyperfoil/hyperfoil-examples
> bin/cli.sh
[hyperfoil]$ start-local
...
[hyperfoil@in-vm]$ upload examples/choose-movie.hf.yaml
...
[hyperfoil@in-vm]$ run
...
Is this scenario too simplistic? Let’s define phases…