Analyze
Test Results

PushToTest built TestMaker to operate tests, monitor the systems as the test operates, and correlate the results into a set of metrics and charts for root cause analysis and remediation.
Analyze Test Results

PushToTest designed TestMaker to operate a test and analyze the results for performance bottlenecks and remediation. PushToTest presents results depending on the type of test: functional tests show a check list of step operations, load and performance tests have a choice of 350 or more charts and statistics, and business service monitors show a dashboard of monitor statistics and service up/down status. This document will focus on the results analysis possible from load and performance testing.
Load Test Live Results

As TestMaker operates a load test scenario the Controller Panel displays a live view of the Scalability Index for the target service. TestMaker polls the TestNodes approximately every 10 seconds and updates the Real Time Scalability Index.
The Scalability Index shows the throughput average for Transactions Per Second (TPS), measured by the TestNodes, at each concurrently running simulated user (CR) level. The Scalability Index shows TPS for each Data Index level too for multiple dimension tests. The following shows the live results chart for a load test scenario reporting 6.35 TPS at the first concurrent virtual users (CVUs) level and 8.7 TPS at the second level of CVUs operates:
The higher the TPS the better. And the more TPS for each level concurrent users the better. In a system with linear scalability 4 concurrent running users should give 4 times the TPS as 1 concurrently running user.
The Scalability Index appears as the default chart in load and performance tests because it helps identify server, network, and memory needs, it identifies the population of users that the application or service can handle, and it surfaces scalability and performance issues before your users and customers experience them. Click here to learn about the Scalability Index.
The live results chart provides several functions accessible using a right-click of the mouse on the chart. A pop-menu appears to save the chart to a PNG graphic file, zoom in / out, print and set preferences for the chart, including fonts, axis settings and titles.
Results
Analysis Engine Overview

TestMaker test operations generate much useful data. TestMaker 5.0
introduced standard charts to visualize the data into actionable
knowledge, including the Scalability Index,Transaction Distribution
Charts, and Resource Monitor Charts. TestMaker 5.0 also introduced a
result log archiving system and a Performance Comparison Utility to
generate charts to compare results between operations of test
scenarios. With TestMaker 5.2 we introduced the new results analysis
functions:
1. Transaction logs include the "step" times for the
<run> operations within a <transaction>
2. A new charting function summarizes logged results data in new and
flexible ways
TestMaker 5 creates much data that can be put into a chart. Here are
the base data series:
1. Test Scenario (name)
2. Test Node (name)
3. Concurrent User levels (CRs)
4. Data Index (Message size)
5. Transaction (Use Case)
6. Sequence name
7. Step (run) name
8. Pass/Fail status
9. Error Name and Details
By default, TestMaker stores the above data into a results directory in the default directory defined in the TestScenario. For example, consider the following TestScenario:
<testscenario
version="2.0" xmlns="www.pushtotest.com/tm5">
<basics>
<name>BrewBiz Data-Driven Load Test</name>
<defaultdirectory>./example_agents/WebRecordPlayback/LoadTest</defaultdirectory>
</basics>
...
<logs showsummary="true"
step="true" summaryreport="true"/>
After operating the above TestScenario, look at the TestMaker home directory and then in example_agents/WebRecordPlayback/LoadTest for a Results directory. TestMaker creates a new directory in the Results directory to store the results of each operation of the load and performance test.
See Java Enterprise Application Monitoring with Glassbox for details on performance bottleneck and functional issue montoring of Java enterprise applications.
Transaction
and Step Logging

TestMaker records log entries for tests authored in one of the integrated record/playback tools and tests authored in a scripting language. For tests authored in TestGen4Web, Selenium, and soapUI, the TestMaker script runner logs the time it takes to process each transaction and each step within the transaction. For example, if your Selenium test has 10 commands (such as load a page, type a value, click a submit button, and more) then TestMaker logs the time it takes to process each of the 10 commands.
For tests you author in Java, Jython, and the other supported scripting languages, TestMaker logs the transaction time for the <usecase>, the time it takes to execute each <run> method, and any user generated log entries.
The following illustrates transaction and step logging for a test written in Jython:
<sequence name="MySequence" proportion="100">
<run module="frankmodule" name="Log-in"
testclass="franktest"
method="runTest" langtype="jython"/>
<run module="frankmodule" name="Select Pen"
testclass="franktest"
method="runTest" langtype="jython"/>
<run module="frankmodule" name="Choose box"
testclass="franktest"
method="runTest" langtype="jython"/>
</usecase>
Enabled step logging in the TestScenario by adding:
The above setting tells TestMaker to record step timing values when running this use case. For instance, the ScriptRunner will add <step> entries to the transaction log for each recorded GET / POST operation as shown below:
<testcase size="1" description="TG4W_usecase" cvus="1">
<transaction cvus="1" threadid="0" sequence="TG4W_sequence"
duration="30" error="" nodename="localhost" result="true"
timestamp="1202875643247" totaltime="311">
<step id="0" name="Log-in" totaltime="106"/>
<step id="1" name="Select Pen" totaltime="106"/>
<step id="2" name="Choose box" totaltime="99"/>
Results Settings and User
Controls

TestMaker provides a graphic interface for you to identify additional summary charts. From a load and performance TestScenario, click the + icon in the lower left corner of the controller panel.
![]()
Create a New Chart
Definition

Click the + icon
in the controller
panel to tell TestMaker that you want to add a new chart definition to
the current TestScenario. The following dialog box appears ready for
you to enter a new chart definition:

Enter a Chart Name, choose the Y and X Axis settings, graph type, and
other options. Then click the Save button to save this chart setting to
the current TestScenario. TestMaker will offer to re-run the charts for
this TestScenario and the charts will appear in the controller panel.
Managing and Reusing Chart Definitions

The Chart Templates repository comes with a dozen or more preformed chart definitions for you to immediately add to your TestScenario. Click one of the Chart Templates, make any desired changes to the settings, and click the Save To TestScenario button.
Use the same Chart Settings dialog to save a chart definition to the TestMaker Chart Templates repository for reuse in any TestScenario. With a chart selected, click the Save To Chart Templates button to store the chart definition to the repository.
Running Reports Manually

PushToTest TestMaker operates the chart definitions from the TestScenario at the end of a load test automatically. PushToTest saves the generated charts in PNG format to the results directory which are archived automatically. The Summary (HTML) report includes these generated charts. there will be times when users will need to run a new report based on existing transaction logs. The PushToTest Tools drop-down menu includes a Results Analysis Chart Generator command.

The Results Analysis Chart Generator
uses the
Chart Settings user interface. Click the Edit button to choose the
Results directory TestMaker will use as the input. Click Create Graphs
to generate the results.
TestMaker accepts selection of multiple Results transaction log file
directories to compare the results of one test to other tests.
Recipes

The TestMaker Results Analysis engine is capable of delivering hundreds of different charts. Here are recipes for a few of our favorite reports.
CPU,
Network, Memory Utilization

Shows the CPU, Network, and Memory
utilization of
the application host or onen of the TestNodes for the duration of each
test use case. In the following chart the CPU of the TestNode
(localhost) was pegged at 100% except for 20 seconds into the test.

Y Axis: System Resources Percentage
X Axis: Time
Series: Net, CPU, Mem
Graph Type: Lines
Step
Contribution Over 10 Equal Periods

Shows the average time it takes to
accomplish
each step when spread over 10 equal periods of the test time. Each bar
shows the total average time to acomplish the transaction. Each bar is
composed of the average step times.

Y Axis: Duration Average
X Axis: Periods
Series: Steps
Graph Type: Stacked Bars
Performance
Under Load

Shows the average total time it takes to a use case at each level of concurrent running simulated users (CRs.)

Y Axis: Duration Average
X Axis: Periods
Series: Steps
Graph Type: Stacked Bars
Summary Results Report

TestMaker offers a convenient way to save a summary of all the charts from a TestScenario to an HTML-formatted Summary Results Report. Enable the Summary Results Report by adding the following to a TestScenario:
<logs showsummary="true" step="true" summaryreport="true">
- summaryreport when set to true will generate the Summary Results Report.
- showsummary when set to true will automatically open the Summary Results Report in your default Web browser after TestMaker executes the TestScenario.
The following is an example of a Summary Results Report.
TestMaker creates the Summary Results Report in the results directory of the default directory. The following illustrates the contents of the results directory for the WebRecordPlayBack LoadTest in the example_agents tutorial.

|
Additional documentation, product downloads and updates are at www.PushToTest.com. While the PushToTest testMaker software is distributed under an open-source license, the documenation remains (c) 2008 PushToTest. All rights reserved. PushToTest is a trademark of the PushToTest company. |

