digitaldemocratic/stress-tests/README.md

2.3 KiB

Stress tests

By executing tests in this normalised fashion it is easier to compare results between different instances or different patch levels.

This documents normalised stress-testing and references files under stress-tests.

VM tests

  • [vm-tests.sh][vm-tests.sh]: generate a text file to compare CPU and other factors across VM types, providers or instances which may affect DD performance.

We can compare the resulting logs just with, e.g. vim -d.

DD tests

Currently these tests perform logins and interact with Nextcloud, but it would be interesting to expand them to interact with other services.

Directory contents

This directory contains following files:

  • [dd-stress-test.tpl.jmx][dd-stress-test.tpl.jmx]: template to generate JMeter tests to execute
  • [dd-tests.sh][dd-tests.sh]: helper script that generates the actual test plan files and executes them. See ./dd-tests.sh --help
  • [dd-tests-selenium.py][dd-tests-selenium.py]: this gives us an idea of how a user would perceive DD to be behaving while under load. Called by ./dd-tests.sh by default.

Results

Results will be saved in a results directory, where each subdirectory corresponds to a stress test executed with dd-test.sh.

The naming scheme for those subdirectories is: DOMAIN_THREADCOUNT_DURATION Where THREADCOUNT and DURATION are the corresponding JMeter parameters.

Each results directory contains:

  • log: the JMeter log
  • results: the JMeter results file
  • html/index.html: the interactive graphs for the data as produced by JMeter
  • selenium/session.html: the session report as would be perceived by a user. Note this requires Python3 and selenium and can be disabled by setting the environment variable: USE_SELENIUM=NO.