The testing process involves multiple modules that perform different tasks. Themodules and their APIs are listed below.
Governs the whole testing process. Runs different workloads during differenttroubles.
Puts workloads against the database. Writes logs that are later used byvalideaux
.
start(id, workload, cluster)
- starts aworkload
against thecluster
and call itid
.stop(id)
- stops a previously started workload calledid
.
Manages the database nodes.
deploy(driver, ...)
- deploys a cluster using the specifieddriver
andother parameters specific to that driver. Returns acluster
instance that isused in other methods.cluster->up(id)
- adds a node namedid
to thecluster
.cluster->down(id)
- removes a node namedid
from thecluster
.cluster->drop(src, dst, ratio)
- dropratio
packets flowing from nodesrc
to nodedst
.cluster->delay(src, dst, msec)
- delay packets flowing from nodesrc
tonodedst
bymsec
milliseconds.
This is the troublemaker that messes with the network, nodes and time.
cause(cluster, trouble, ...)
- causes the specifiedtrouble
in thespecifiedcluster
with some trouble-specific parameters.fix(cluster)
- fixes all troubles caused in thecluster
.
Validates the logs of stresseaux.
Generates reports on the test results. This is usually a table that withtrouble
vsworkload
axes.