Simple tool for load testing an HTTP server that allows for increasing load to be applied over time. This module provides support for collecting various statistics, including requests per second, response time, CPU and memory usage. Resulting statistics can be saved to disk as a JSON file or written to an HTML report with graphs.
{
    "url": "http://localhost:8080",
    "beginConcurrency": 1,
    "endConcurrency": 50,
    "stepRequests": 100,
    "pids": [1234, 1235],
    "report": {
        "outputDir": "path:./report"
    }
}
Alternatively, the JavaScript API can be used to collect statistics as shown in the following sample code:
{
    "cpuAvailable": true,
    "memoryAvailable": true,
    "steps": [
        {
            "concurrency": 1,
            "stats": {
                "responseTime": {
                    "min": 11.562785029411316,
                    "max": 19.471349954605103,
                    "sum": 1358.6313557624817,
                    "variance": 2.64784231895231,
                    "mean": 13.586313557624816,
                    "stddev": 1.627219198188219,
                    "count": 100,
                    "median": 13.028658986091614,
                    "p75": 14.24703973531723,
                    "p95": 16.65775092244148,
                    "p99": 19.463981754779812,
                    "p999": 19.471349954605103
                },
                "requestsPerSecond": {
                    "mean": 73.32546082534017,
                    "count": 100,
                    "currentRate": 73.32433734563027,
                    "1MinuteRate": 0,
                    "5MinuteRate": 0,
                    "15MinuteRate": 0
                },
                "usage": [
                    {
                        "pid": "33062",
                        "cpu": {
                            "min": 0,
                            "max": 0.5,
                            "sum": 11.199999999999989,
                            "variance": 0.022248995983935746,
                            "mean": 0.1333333333333332,
                            "stddev": 0.14916097339430226,
                            "count": 84,
                            "median": 0.1,
                            "p75": 0.2,
                            "p95": 0.5,
                            "p99": 0.5,
                            "p999": 0.5
                        },
                        "memory": {
                            "min": 68.20703125,
                            "max": 68.20703125,
                            "sum": 5797.59765625,
                            "variance": 0,
                            "mean": 68.20703125,
                            "stddev": 0,
                            "count": 85,
                            "median": 68.20703125,
                            "p75": 68.20703125,
                            "p95": 68.20703125,
                            "p99": 68.20703125,
                            "p999": 68.20703125
                        }
                    }
                ]
            }
        },
        {
            "concurrency": 2,
            "stats": {
                "responseTime": {
                    "min": 11.659276962280273,
                    "max": 21.81683897972107,
                    "sum": 1383.8951340913773,
                    "variance": 3.2013560905275846,
                    "mean": 13.97873872819573,
                    "stddev": 1.7892333806766474,
                    "count": 99,
                    "median": 13.467664003372192,
                    "p75": 14.689211010932922,
                    "p95": 17.55275595188141,
                    "p99": 21.81683897972107,
                    "p999": 21.81683897972107
                },
                "requestsPerSecond": {
                    "mean": 141.74595662204692,
                    "count": 99,
                    "currentRate": 141.73979759785095,
                    "1MinuteRate": 0,
                    "5MinuteRate": 0,
                    "15MinuteRate": 0
                },
                "usage": [
                    {
                        "pid": "33062",
                        "cpu": {
                            "min": 0,
                            "max": 0.3,
                            "sum": 5.9,
                            "variance": 0.012024390243902443,
                            "mean": 0.14390243902439026,
                            "stddev": 0.1096557807135695,
                            "count": 41,
                            "median": 0.2,
                            "p75": 0.2,
                            "p95": 0.3,
                            "p99": 0.3,
                            "p999": 0.3
                        },
                        "memory": {
                            "min": 68.20703125,
                            "max": 68.20703125,
                            "sum": 2864.6953125,
                            "variance": 0,
                            "mean": 68.20703125,
                            "stddev": 0,
                            "count": 42,
                            "median": 68.20703125,
                            "p75": 68.20703125,
                            "p95": 68.20703125,
                            "p99": 68.20703125,
                            "p999": 68.20703125
                        }
                    }
                ]
            }
        },
        ...,
        {
            "concurrency": 10,
            "stats": {
                "responseTime": {
                    "min": 11.175518989562988,
                    "max": 29.486907958984375,
                    "sum": 1753.7954921722412,
                    "variance": 21.318200618972394,
                    "mean": 19.272477935958694,
                    "stddev": 4.617163698524495,
                    "count": 91,
                    "median": 19.485509037971497,
                    "p75": 21.68475103378296,
                    "p95": 28.69777555465698,
                    "p99": 29.486907958984375,
                    "p999": 29.486907958984375
                },
                "requestsPerSecond": {
                    "mean": 504.8386172505691,
                    "count": 91,
                    "currentRate": 504.8419813195869,
                    "1MinuteRate": 0,
                    "5MinuteRate": 0,
                    "15MinuteRate": 0
                },
                "usage": [
                    {
                        "pid": "33062",
                        "cpu": {
                            "min": 0,
                            "max": 0.4,
                            "sum": 2.4,
                            "variance": 0.022857142857142864,
                            "mean": 0.34285714285714286,
                            "stddev": 0.1511857892036909,
                            "count": 7,
                            "median": 0.4,
                            "p75": 0.4,
                            "p95": 0.4,
                            "p99": 0.4,
                            "p999": 0.4
                        },
                        "memory": {
                            "min": 68.2109375,
                            "max": 68.2109375,
                            "sum": 545.6875,
                            "variance": 0,
                            "mean": 68.2109375,
                            "stddev": 0,
                            "count": 8,
                            "median": 68.2109375,
                            "p75": 68.2109375,
                            "p95": 68.2109375,
                            "p99": 68.2109375,
                            "p999": 68.2109375
                        }
                    }
                ]
            }
        }
    ],
    "url": "http://localhost:9900",
    "pids": [
        33062
    ],
    "options": {
        "beginConcurrency": 1,
        "endConcurrency": 10,
        "stepRequests": 100,
        "concurrencyIncrement": 1,
        "delay": 2000
    }
}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4