digitaldemocratic/stress-tests
Evilham 29737dc3c5 [stress-tests] Adapt for NC 25
This still supports NC24

While there, configure JMeter to restart threads instead of stopping them.

This keeps the load on the target server.
2023-06-07 15:11:25 +02:00
..
.gitignore [stress-tests] Documentation + necessary files to perform testing 2023-02-28 08:25:42 +01:00
Pipfile [stress-tests] Documentation + necessary files to perform testing 2023-02-28 08:25:42 +01:00
Pipfile.lock [stress-tests] Documentation + necessary files to perform testing 2023-02-28 08:25:42 +01:00
README.md [docs] Fix links in stress-test docs 2023-03-01 23:22:10 +01:00
dd-stress-test.tpl.jmx [stress-tests] Adapt for NC 25 2023-06-07 15:11:25 +02:00
dd-test.sh [stress-tests] Fix typo when finding sysbench binary 2023-03-01 12:39:19 +01:00
dd-tests-selenium.py [stress-tests] Adapt for NC 25 2023-06-07 15:11:25 +02:00
requirements.txt [stress-tests] Documentation + necessary files to perform testing 2023-02-28 08:25:42 +01:00
vm-tests.sh [stress-tests] Fix typo when finding sysbench binary 2023-03-01 12:39:19 +01:00

README.md

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: 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: template to generate JMeter tests to execute
  • dd-tests.sh: helper script that generates the actual test plan files and executes them. See ./dd-tests.sh --help
  • 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.