Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/oleksiyp/load-test-tool

Groovy based tool for performing load testing of HTTP or java applications.
https://github.com/oleksiyp/load-test-tool

Last synced: about 2 months ago
JSON representation

Groovy based tool for performing load testing of HTTP or java applications.

Awesome Lists containing this project

README

        

h1. Loadtest tool

This tool could be used to test load your web application using different scenarios. Scripts are written in groovy using loadtest API.

h2. Run

Copy one loadtest-1.0.jar and Example*.groovy from repository to a directory on your computer. Use java to run it from commandline:


java -jar loadtest-1.0.jar Example1.groovy

Use -h option to display command line information:


java -jar loadtest-1.0.jar -h
java -jar loadtest.jar [options...] scripts...
-c (--threads) N : Number of concurrent threads
-ci (--threads-increment) N : Number of concurrent threads to increment after
stop/start (use [ENTER])
-d (--delay) N : Seconds to delay between requests
-e (--eval) VAL : Evaluate groovy script
-h (--help) : Display usage information
-ie (--init-eval) VAL : Evaluate init script to initialize globals
-if (--init-file) FILE : Runs init script to initialize globals
-n (--runs-number) N : Number of runs to perform
-s (--show-slows) N : Number of the slowest queries to show in
statistics(by default 24)

h2. Loadtest API

For groovy scripts following classes are available: HTTP and Variations. HTTP class could be used to create load. Variation helps to create non-deterministic behavior. For details please refer to the groovy documentation and src/main/resources/org/loadtest/Classes.groovy

h3. Variations

h4. select(prob1, closure1, prob2, closure2, prob3, closure3, ...)

Select one of the closures to execute depending on probability. Probabilities could be not normalized: i.e. sum(prob~i~) != 1.0

h4. takeAny(arguments...);

Select one of arguments with equal probability.

h3. HTTP

h4. get([Closure reporter, ]String ...urls)

Gets value of one(!randomly selected) of urls and reads line by line calling reporter(line). If reporter is not specified returns array of strings - lines of this file.

h4. parse(Pattern regex, String ...html)

Process text thought regular expression and selects regular expression groups. Returns 2-d array if several groups used and 1-d if one.

h4. resolve(String name, String path)

Resolves path relative to name.

h3. Globals

h4. get(String name)

Get variable value shared in global map.

h4. put(String name, Object value)

Set variable value shared in global map.

h4. list(String name, Object ...initValues)

Initialize list(synchronized) in global map with values initValues.

h4. increment(String name)

Gets counter and increments or initializes it with 0 at start.

h2. Tasks

h3. Features

Ask

h3. Protocols

* 30% HTTP
* 0% FTP
* 0% java call(classpath collector)

h3. Proxies

* 0% HTTP proxy
* 0% internal proxy

h3. Statistics

* 0% Save statistics to file
* 0% Process file to calculate percentiles, etc
* 0% Prepare data for Excel, GNU PLOT etc

h2. License

Load test tool is distributed on terms of BSD-license. Look at src/main/resources/BSD-LICENSE.txt for details.

Groovy used internally by load test tool is licensed under the Apache 2 license:

http://www.apache.org/licenses/LICENSE-2.0.html