The Console

Process controls
Start processes, Reset processes and Stop processes send signals to Grinder processes that are listening. (See the properties grinder.useConsole, grinder.consoleHost and consolePort.)
Worker processes that are configured to receive console signals go through three states:
- Initiated (waiting for a console signal)
- Running (performing tests, reporting to console)
- Finished (waiting for a console signal)
The Start processes control signals to worker processes that they should move into the running state. Processes that are already running ignore this signal. Processes that are in the finished state exit; the agent process will then reread the properties file and launch new worker processes in the running state.
The Reset processes control signals all the worker processes to exit. The agent process will then reread the properties file and launch new worker processes.
The Stop processes control signals all processes, including the agent processes, to exit. You usually want to use Reset processes instead.
Sample controls
The sample controls determine how the console captures reports from the worker processes. It is important to understand that these only control the console behaviour. For example, they do not adjust the frequency at which the worker processes send reports (see grinder.reportToConsole.interval for that). Additionally, the sample controls do not interact in any way with the process controls.
The slider controls the period at which the console will take a sample. This involves adding up all the reports received over that sample interval and calculating the TPS as (number of tests that occurred)/(interval length). It is also the period at which the console graphs and statistics are updated.
By default, the console discards the first non-zero sample period, and starts updating the display and calculating totals from the second sample. A non-zero sample period is one in which an update from a worker process was received. You can adjust how many non-zero sample periods the console ignores before starting capture with the ignore samples text field.
The third control allows you to adjust how many samples the console will collect before stopping capture.
You can also manually start and stop the sampling with the Capture statistics/Stop capture control. Use the Save statistics control to save the current set of statistics to a file.
Display
On the console there are a number of tabs which display information about The Grinder and its tests. These are detailed below:
Graphs
Each graph displays the 25 most recent Tests Per Second (TPS) values for a particular test. A new value is added every console sample period. The y-axis is scaled so that the full height represents the peak TPS value received for the test since the display was last reset.
The colours are based on the relative response time. Long response times are more red, short response times are more yellow. This acts as an eye-catcher, allowing expensive tests to be easily spotted.
Results
The Results tab shows the results from The Grinder instrumentation.
| Instrument | Description |
|---|---|
| Test | The test number as specified in the test script, eg. tests[14000] will display as Test 14000. |
| Description | The test description as specified in the test script. If the HTTPProxy has been used to generate the scripts the description field can be found in the httpscript_tests.py file, eg. tests[14000] = Test(14000, 'GET index.jsp').wrap(request14000) will display as 'Get index.jsp'. |
| Successful Tests | The total number of iterations of the test that were successfully executed by The Grinder during the test run. |
| Errors | The total number of iterations of the test that failed to be fully executed by The Grinder during the test run. |
| Mean Time | The mean time taken to execute the test and receive the full response from the target server/application, in milliseconds. |
| Mean Time Standard Deviation | The mean standard deviation of the time taken to execute the test and receive the full response from the target server/application, in milliseconds. |
| TPS | Transactions per second. The average number of iterations of the test that successfully ran in a one second interval. |
| Peak TPS | Peak Transactions per second. The maximum number of iterations of the test that successfully ran in a one second interval. |
There is additional instrumentation for the HTTPPlugin.
| Instrument | Description |
|---|---|
| Mean Response Length | The mean size of HTTP response from the target server/application in response to the executed test, in bytes. |
| Response Bytes per Second | The mean number of bytes per second received from the target server/application, in bytes per second. This gives an indication of the amount of bandwidth being consumed by the test. This does not take into account the amount of traffic being sent to the target server/application. |
| Response Errors | The total number of HTTP Response Error Codes (eg, 404, 500 etc) received during the test run. |
| Mean Time to Resolve Host | The mean time taken to resolve the ip address of the target server from the Fully Qualified Domain Name, via hosts file or DNS, in milliseconds. This is the time relative to the start of the test iteration. |
| Mean Time to Establish Connection | The mean time taken to establish a tcp connection to the target server/application, in milliseconds. This is the time relative to the start of the test iteration. |
| Mean Time to First Byte | The mean time taken to receive the first byte of response from the target server/application, in milliseconds. This is the time relative to the start of the test iteration. |
Processes
This tab displays information about the Agents, their worker processes and associated threads.
| Header | Description |
|---|---|
| Process | The name of the process. A parent process will take the hostname of the box on which it is running Its child processes take the name of the parent process and add a suffix of "-x" where x is an integer, eg. myserver-0. |
| Type | The type of process, eg. Agent or Worker. |
| State | Information about the state of the process, eg. "Connected" for an agent process and "Running" and "Finished" for a Worker process. |
Script
This tab contains the beginnings of console support for script editing. It is under construction and is not currently functional.
Also on this tab are controls for the script distribution system (Also accessible through the Distribute menu)
This gives you the ability to:
-
Set the root directory for script distribution
The directory on the console host that contains the scripts for distribution
-
Set the script to run
This selects the script from those in the distributed list that is to be run
-
Send changed files to worker processes
This pushes out the contents of the root directory to all connected worker processes
Internationalisation help wanted
If you are bilingual you might fancy translating the console into a language of your choice.

