Description
We have a need to run performance tests using luatest in, for example, CRUD module. Now CRUD has a single test that report results on each iteration to console log and then someone aggregates these results and analyze manually (or in spreadsheets). To be honest it is not convenient and is not usable for regular automated runs on CI for tracking regressions.
Performance tests are similar to unit tests, but requires at least two additional things: results aggregation and analyzing with math. I propose to support in luatest such type of tests.
How it can look like:
- luatest already has an option
--repeat NUM
, thatExecute all tests NUM times, e.g. to trig the JIT
. We can reuse it for set a number of test iterations for results stability. - we need to somehow store test results for each test run and then aggregate it in a single place (table?) for analysis.
- we need to add functions that will calculate average, stdev, max, +/- stdev (anything else?).
For better results stability we need to use taskset
with luatest. Is it possible to use it automatically once performance tests run?
It would be interesting to hear ideas and opinion from @Totktonada and @VitaliyaIoffe.