View | Details | Raw Unified | Return to bug 57217
Collapse All | Expand All

(-)bin/jmeter.properties (+14 lines)
Lines 775-780 Link Here
775
# Write messages to System.out
775
# Write messages to System.out
776
#summariser.out=true
776
#summariser.out=true
777
777
778
779
#---------------------------------------------------------------------------
780
# Aggregate Report and Aggregate Graph - configuration
781
#---------------------------------------------------------------------------
782
#
783
# Percentiles to display in reports
784
# Can be float value between 0 and 100
785
# First percentile to display, defaults to 90%
786
#aggregate_rpt_pct1=90
787
# Second percentile to display, defaults to 95%
788
#aggregate_rpt_pct2=95
789
# Second percentile to display, defaults to 99%
790
#aggregate_rpt_pct3=99
791
778
#---------------------------------------------------------------------------
792
#---------------------------------------------------------------------------
779
# BeanShell configuration
793
# BeanShell configuration
780
#---------------------------------------------------------------------------
794
#---------------------------------------------------------------------------
(-)src/components/org/apache/jmeter/visualizers/BarGraph.java (-5 / +3 lines)
Lines 23-30 Link Here
23
23
24
import javax.swing.JCheckBox;
24
import javax.swing.JCheckBox;
25
25
26
import org.apache.jmeter.util.JMeterUtils;
27
28
public class BarGraph {
26
public class BarGraph {
29
    
27
    
30
    private String label;
28
    private String label;
Lines 34-46 Link Here
34
    private Color backColor;
32
    private Color backColor;
35
33
36
    /**
34
    /**
37
     * @param resString The label of this component
35
     * @param label The label of this component
38
     * @param checked Flag whether the corresponding checkbox should be checked
36
     * @param checked Flag whether the corresponding checkbox should be checked
39
     * @param backColor The color of the background
37
     * @param backColor The color of the background
40
     */
38
     */
41
    public BarGraph(String resString, boolean checked, Color backColor) {
39
    public BarGraph(String label, boolean checked, Color backColor) {
42
        super();
40
        super();
43
        this.label = JMeterUtils.getResString(resString);
41
        this.label = label;
44
        this.chkBox = new JCheckBox(this.label, checked);
42
        this.chkBox = new JCheckBox(this.label, checked);
45
        this.backColor = backColor;
43
        this.backColor = backColor;
46
    }
44
    }
(-)src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java (-33 / +80 lines)
Lines 28-33 Link Here
28
import java.io.FileNotFoundException;
28
import java.io.FileNotFoundException;
29
import java.io.FileWriter;
29
import java.io.FileWriter;
30
import java.io.IOException;
30
import java.io.IOException;
31
import java.text.MessageFormat;
31
import java.util.ArrayList;
32
import java.util.ArrayList;
32
import java.util.List;
33
import java.util.List;
33
import java.util.Map;
34
import java.util.Map;
Lines 65-70 Link Here
65
import org.apache.jmeter.gui.action.SaveGraphics;
66
import org.apache.jmeter.gui.action.SaveGraphics;
66
import org.apache.jmeter.gui.util.FileDialoger;
67
import org.apache.jmeter.gui.util.FileDialoger;
67
import org.apache.jmeter.gui.util.FilePanel;
68
import org.apache.jmeter.gui.util.FilePanel;
69
import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
68
import org.apache.jmeter.gui.util.VerticalPanel;
70
import org.apache.jmeter.gui.util.VerticalPanel;
69
import org.apache.jmeter.samplers.Clearable;
71
import org.apache.jmeter.samplers.Clearable;
70
import org.apache.jmeter.samplers.SampleResult;
72
import org.apache.jmeter.samplers.SampleResult;
Lines 92-115 Link Here
92
public class StatGraphVisualizer extends AbstractVisualizer implements Clearable, ActionListener {
94
public class StatGraphVisualizer extends AbstractVisualizer implements Clearable, ActionListener {
93
    private static final long serialVersionUID = 240L;
95
    private static final long serialVersionUID = 240L;
94
96
97
    private static final String pct1Label = JMeterUtils.getPropDefault("aggregate_rpt_pct1", "90");
98
    private static final String pct2Label = JMeterUtils.getPropDefault("aggregate_rpt_pct2", "95");
99
    private static final String pct3Label = JMeterUtils.getPropDefault("aggregate_rpt_pct3", "99");
100
    
101
    private static final Float pct1Value = new Float(Float.parseFloat(pct1Label)/100);
102
    private static final Float pct2Value =  new Float(Float.parseFloat(pct2Label)/100);
103
    private static final Float pct3Value =  new Float(Float.parseFloat(pct3Label)/100);
104
95
    private static final Logger log = LoggingManager.getLoggerForClass();
105
    private static final Logger log = LoggingManager.getLoggerForClass();
96
106
97
    private final String[] COLUMNS = { JMeterUtils.getResString("sampler_label"), //$NON-NLS-1$
107
    static final String[] COLUMNS = { 
98
            JMeterUtils.getResString("aggregate_report_count"),         //$NON-NLS-1$
108
            "sampler_label",                  //$NON-NLS-1$
99
            JMeterUtils.getResString("average"),                        //$NON-NLS-1$
109
            "aggregate_report_count",         //$NON-NLS-1$
100
            JMeterUtils.getResString("aggregate_report_median"),        //$NON-NLS-1$
110
            "average",                        //$NON-NLS-1$
101
            JMeterUtils.getResString("aggregate_report_90%_line"),      //$NON-NLS-1$
111
            "aggregate_report_median",        //$NON-NLS-1$
102
            JMeterUtils.getResString("aggregate_report_min"),           //$NON-NLS-1$
112
            "aggregate_report_xx_pct1_line",      //$NON-NLS-1$
103
            JMeterUtils.getResString("aggregate_report_max"),           //$NON-NLS-1$
113
            "aggregate_report_xx_pct2_line",      //$NON-NLS-1$
104
            JMeterUtils.getResString("aggregate_report_error%"),        //$NON-NLS-1$
114
            "aggregate_report_xx_pct3_line",      //$NON-NLS-1$
105
            JMeterUtils.getResString("aggregate_report_rate"),          //$NON-NLS-1$
115
            "aggregate_report_min",           //$NON-NLS-1$
106
            JMeterUtils.getResString("aggregate_report_bandwidth") };   //$NON-NLS-1$
116
            "aggregate_report_max",           //$NON-NLS-1$
117
            "aggregate_report_error%",        //$NON-NLS-1$
118
            "aggregate_report_rate",          //$NON-NLS-1$
119
            "aggregate_report_bandwidth" };   //$NON-NLS-1$
120
    
121
    static final Object[][] COLUMNS_MSG_PARAMETERS = { null, //$NON-NLS-1$
122
            null,                             //$NON-NLS-1$
123
            null,                             //$NON-NLS-1$
124
            null,                             //$NON-NLS-1$
125
            new Object[]{pct1Label},                      //$NON-NLS-1$
126
            new Object[]{pct2Label},                      //$NON-NLS-1$
127
            new Object[]{pct3Label},                      //$NON-NLS-1$
128
            null,                             //$NON-NLS-1$
129
            null,                             //$NON-NLS-1$
130
            null,                             //$NON-NLS-1$
131
            null,                             //$NON-NLS-1$
132
            null };                           //$NON-NLS-1$
107
133
108
    private final String[] GRAPH_COLUMNS = {JMeterUtils.getResString("average"),//$NON-NLS-1$
134
    private final String[] GRAPH_COLUMNS = {"average",//$NON-NLS-1$
109
            JMeterUtils.getResString("aggregate_report_median"),        //$NON-NLS-1$
135
            "aggregate_report_median",        //$NON-NLS-1$
110
            JMeterUtils.getResString("aggregate_report_90%_line"),      //$NON-NLS-1$
136
            "aggregate_report_xx_pct1_line",      //$NON-NLS-1$
111
            JMeterUtils.getResString("aggregate_report_min"),           //$NON-NLS-1$
137
            "aggregate_report_xx_pct2_line",      //$NON-NLS-1$
112
            JMeterUtils.getResString("aggregate_report_max")};          //$NON-NLS-1$
138
            "aggregate_report_xx_pct3_line",      //$NON-NLS-1$
139
            "aggregate_report_min",           //$NON-NLS-1$
140
            "aggregate_report_max"};          //$NON-NLS-1$
113
141
114
    private final String TOTAL_ROW_LABEL =
142
    private final String TOTAL_ROW_LABEL =
115
        JMeterUtils.getResString("aggregate_report_total_label");       //$NON-NLS-1$
143
        JMeterUtils.getResString("aggregate_report_total_label");       //$NON-NLS-1$
Lines 239-245 Link Here
239
267
240
    public StatGraphVisualizer() {
268
    public StatGraphVisualizer() {
241
        super();
269
        super();
242
        model = new ObjectTableModel(COLUMNS,
270
        model = createObjectTableModel();
271
        eltList.add(new BarGraph(JMeterUtils.getResString("average"), true, new Color(202, 0, 0)));
272
        eltList.add(new BarGraph(JMeterUtils.getResString("aggregate_report_median"), false, new Color(49, 49, 181)));
273
        eltList.add(new BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct1_line"),new Object[]{pct1Label}), false, new Color(42, 121, 42)));
274
        eltList.add(new BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct2_line"),new Object[]{pct2Label}), false, new Color(242, 226, 8)));
275
        eltList.add(new BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct3_line"),new Object[]{pct3Label}), false, new Color(202, 10 , 232)));
276
        eltList.add(new BarGraph(JMeterUtils.getResString("aggregate_report_min"), false, Color.LIGHT_GRAY));
277
        eltList.add(new BarGraph(JMeterUtils.getResString("aggregate_report_max"), false, Color.DARK_GRAY));
278
        clearData();
279
        init();
280
    }
281
282
    /**
283
     * Creates that Table model 
284
     * @return ObjectTableModel
285
     */
286
    static ObjectTableModel createObjectTableModel() {
287
        return new ObjectTableModel(COLUMNS,
243
                SamplingStatCalculator.class,
288
                SamplingStatCalculator.class,
244
                new Functor[] {
289
                new Functor[] {
245
                new Functor("getLabel"),                    //$NON-NLS-1$
290
                new Functor("getLabel"),                    //$NON-NLS-1$
Lines 247-283 Link Here
247
                new Functor("getMeanAsNumber"),                //$NON-NLS-1$
292
                new Functor("getMeanAsNumber"),                //$NON-NLS-1$
248
                new Functor("getMedian"),                    //$NON-NLS-1$
293
                new Functor("getMedian"),                    //$NON-NLS-1$
249
                new Functor("getPercentPoint",                //$NON-NLS-1$
294
                new Functor("getPercentPoint",                //$NON-NLS-1$
250
                new Object[] { new Float(.900) }),
295
                        new Object[] { pct1Value }),
296
                new Functor("getPercentPoint",                //$NON-NLS-1$
297
                        new Object[] { pct2Value }),
298
                new Functor("getPercentPoint",                //$NON-NLS-1$
299
                        new Object[] { pct3Value }),
251
                new Functor("getMin"),                        //$NON-NLS-1$
300
                new Functor("getMin"),                        //$NON-NLS-1$
252
                new Functor("getMax"),                         //$NON-NLS-1$
301
                new Functor("getMax"),                         //$NON-NLS-1$
253
                new Functor("getErrorPercentage"),            //$NON-NLS-1$
302
                new Functor("getErrorPercentage"),            //$NON-NLS-1$
254
                new Functor("getRate"),                        //$NON-NLS-1$
303
                new Functor("getRate"),                        //$NON-NLS-1$
255
                new Functor("getKBPerSecond") },            //$NON-NLS-1$
304
                new Functor("getKBPerSecond") },            //$NON-NLS-1$
256
                new Functor[] { null, null, null, null, null, null, null, null,    null, null },
305
                new Functor[] { null, null, null, null, null, null, null, null, null, null, null, null },
257
                new Class[] { String.class, Long.class, Long.class, Long.class, Long.class, Long.class,
306
                new Class[] { String.class, Long.class, Long.class, Long.class, Long.class, 
258
                Long.class, String.class, String.class, String.class });
307
                            Long.class, Long.class, Long.class, Long.class, String.class, 
259
        eltList.add(new BarGraph("average", true, new Color(202, 0, 0)));
308
                            String.class, String.class });
260
        eltList.add(new BarGraph("aggregate_report_median", false, new Color(49, 49, 181)));
261
        eltList.add(new BarGraph("aggregate_report_90%_line", false, new Color(42, 121, 42)));
262
        eltList.add(new BarGraph("aggregate_report_min", false, Color.LIGHT_GRAY));
263
        eltList.add(new BarGraph("aggregate_report_max", false, Color.DARK_GRAY));
264
        clearData();
265
        init();
266
    }
309
    }
267
310
268
    // Column renderers
311
    // Column renderers
269
    private static final TableCellRenderer[] RENDERERS =
312
    static final TableCellRenderer[] RENDERERS =
270
        new TableCellRenderer[]{
313
        new TableCellRenderer[]{
271
            null, // Label
314
            null, // Label
272
            null, // count
315
            null, // count
273
            null, // Mean
316
            null, // Mean
274
            null, // median
317
            null, // median
275
            null, // 90%
318
            null, // 90%
319
            null, // 95%
320
            null, // 99%
276
            null, // Min
321
            null, // Min
277
            null, // Max
322
            null, // Max
278
            new NumberRenderer("#0.00%"), // Error %age
323
            new NumberRenderer("#0.00%"), // Error %age //$NON-NLS-1$
279
            new RateRenderer("#.0"),      // Throughpur
324
            new RateRenderer("#.0"),      // Throughput //$NON-NLS-1$
280
            new NumberRenderer("#.0"),    // pageSize
325
            new NumberRenderer("#.0"),    // pageSize   //$NON-NLS-1$
281
        };
326
        };
282
327
283
    public static boolean testFunctors(){
328
    public static boolean testFunctors(){
Lines 347-353 Link Here
347
        mainPanel.add(makeTitlePanel());
392
        mainPanel.add(makeTitlePanel());
348
393
349
        myJTable = new JTable(model);
394
        myJTable = new JTable(model);
350
        myJTable.setPreferredScrollableViewportSize(new Dimension(500, 80));
395
        // Fix centering of titles
396
        myJTable.getTableHeader().setDefaultRenderer(new HeaderAsPropertyRenderer(COLUMNS_MSG_PARAMETERS));
397
        myJTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
351
        RendererUtils.applyRenderers(myJTable, RENDERERS);
398
        RendererUtils.applyRenderers(myJTable, RENDERERS);
352
        myScrollPane = new JScrollPane(myJTable);
399
        myScrollPane = new JScrollPane(myJTable);
353
400
Lines 424-430 Link Here
424
        graphPanel.setMaxLength(maxLength);
471
        graphPanel.setMaxLength(maxLength);
425
        graphPanel.setMaxYAxisScale(maxYAxisScale);
472
        graphPanel.setMaxYAxisScale(maxYAxisScale);
426
        graphPanel.setXAxisLabels(getAxisLabels());
473
        graphPanel.setXAxisLabels(getAxisLabels());
427
        graphPanel.setXAxisTitle((String) columnsList.getSelectedItem());
474
        graphPanel.setXAxisTitle(JMeterUtils.getResString((String) columnsList.getSelectedItem()));
428
        graphPanel.setYAxisLabels(this.yAxisLabel);
475
        graphPanel.setYAxisLabels(this.yAxisLabel);
429
        graphPanel.setYAxisTitle(this.yAxisTitle);
476
        graphPanel.setYAxisTitle(this.yAxisTitle);
430
        graphPanel.setLegendLabels(getLegendLabels());
477
        graphPanel.setLegendLabels(getLegendLabels());
(-)src/components/org/apache/jmeter/visualizers/StatVisualizer.java (-51 / +3 lines)
Lines 37-43 Link Here
37
import javax.swing.JTable;
37
import javax.swing.JTable;
38
import javax.swing.border.Border;
38
import javax.swing.border.Border;
39
import javax.swing.border.EmptyBorder;
39
import javax.swing.border.EmptyBorder;
40
import javax.swing.table.TableCellRenderer;
41
40
42
import org.apache.jmeter.gui.util.FileDialoger;
41
import org.apache.jmeter.gui.util.FileDialoger;
43
import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
42
import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
Lines 47-57 Link Here
47
import org.apache.jmeter.testelement.TestElement;
46
import org.apache.jmeter.testelement.TestElement;
48
import org.apache.jmeter.util.JMeterUtils;
47
import org.apache.jmeter.util.JMeterUtils;
49
import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
48
import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
50
import org.apache.jorphan.gui.NumberRenderer;
51
import org.apache.jorphan.gui.ObjectTableModel;
49
import org.apache.jorphan.gui.ObjectTableModel;
52
import org.apache.jorphan.gui.RateRenderer;
53
import org.apache.jorphan.gui.RendererUtils;
50
import org.apache.jorphan.gui.RendererUtils;
54
import org.apache.jorphan.reflect.Functor;
55
import org.apache.jorphan.util.JOrphanUtils;
51
import org.apache.jorphan.util.JOrphanUtils;
56
52
57
/**
53
/**
Lines 69-86 Link Here
69
65
70
    private static final String SAVE_HEADERS   = "saveHeaders"; //$NON-NLS-1$
66
    private static final String SAVE_HEADERS   = "saveHeaders"; //$NON-NLS-1$
71
67
72
    private static final String[] COLUMNS = {
73
            "sampler_label",                 //$NON-NLS-1$
74
            "aggregate_report_count",        //$NON-NLS-1$
75
            "average",                       //$NON-NLS-1$
76
            "aggregate_report_median",       //$NON-NLS-1$
77
            "aggregate_report_90%_line",     //$NON-NLS-1$
78
            "aggregate_report_min",          //$NON-NLS-1$
79
            "aggregate_report_max",          //$NON-NLS-1$
80
            "aggregate_report_error%",       //$NON-NLS-1$
81
            "aggregate_report_rate",         //$NON-NLS-1$
82
            "aggregate_report_bandwidth" };  //$NON-NLS-1$
83
84
    private final String TOTAL_ROW_LABEL
68
    private final String TOTAL_ROW_LABEL
85
        = JMeterUtils.getResString("aggregate_report_total_label");  //$NON-NLS-1$
69
        = JMeterUtils.getResString("aggregate_report_total_label");  //$NON-NLS-1$
86
70
Lines 109-151 Link Here
109
93
110
    public StatVisualizer() {
94
    public StatVisualizer() {
111
        super();
95
        super();
112
        model = new ObjectTableModel(COLUMNS,
96
        model = StatGraphVisualizer.createObjectTableModel();
113
                SamplingStatCalculator.class,
114
                new Functor[] {
115
                    new Functor("getLabel"),   //$NON-NLS-1$
116
                    new Functor("getCount"),  //$NON-NLS-1$
117
                    new Functor("getMeanAsNumber"),   //$NON-NLS-1$
118
                    new Functor("getMedian"),  //$NON-NLS-1$
119
                    new Functor("getPercentPoint",  //$NON-NLS-1$
120
                            new Object[] { new Float(.900) }),
121
                    new Functor("getMin"),  //$NON-NLS-1$
122
                    new Functor("getMax"),   //$NON-NLS-1$
123
                    new Functor("getErrorPercentage"),   //$NON-NLS-1$
124
                    new Functor("getRate"),  //$NON-NLS-1$
125
                    new Functor("getKBPerSecond")   //$NON-NLS-1$
126
                },
127
                new Functor[] { null, null, null, null, null, null, null, null, null, null },
128
                new Class[] { String.class, Long.class, Long.class, Long.class, Long.class,
129
                              Long.class, Long.class, String.class, String.class, String.class });
130
        clearData();
97
        clearData();
131
        init();
98
        init();
132
    }
99
    }
133
100
134
    // Column renderers
135
    private static final TableCellRenderer[] RENDERERS =
136
        new TableCellRenderer[]{
137
            null, // Label
138
            null, // count
139
            null, // Mean
140
            null, // median
141
            null, // 90%
142
            null, // Min
143
            null, // Max
144
            new NumberRenderer("#0.00%"), // Error %age //$NON-NLS-1$
145
            new RateRenderer("#.0"),      // Throughput //$NON-NLS-1$
146
            new NumberRenderer("#.0"),    // pageSize   //$NON-NLS-1$
147
        };
148
149
    /** @deprecated - only for use in testing */
101
    /** @deprecated - only for use in testing */
150
    @Deprecated
102
    @Deprecated
151
    public static boolean testFunctors(){
103
    public static boolean testFunctors(){
Lines 219-227 Link Here
219
        // SortFilterModel mySortedModel =
171
        // SortFilterModel mySortedModel =
220
        // new SortFilterModel(myStatTableModel);
172
        // new SortFilterModel(myStatTableModel);
221
        myJTable = new JTable(model);
173
        myJTable = new JTable(model);
222
        myJTable.getTableHeader().setDefaultRenderer(new HeaderAsPropertyRenderer());
174
        myJTable.getTableHeader().setDefaultRenderer(new HeaderAsPropertyRenderer(StatGraphVisualizer.COLUMNS_MSG_PARAMETERS));
223
        myJTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
175
        myJTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
224
        RendererUtils.applyRenderers(myJTable, RENDERERS);
176
        RendererUtils.applyRenderers(myJTable, StatGraphVisualizer.RENDERERS);
225
        myScrollPane = new JScrollPane(myJTable);
177
        myScrollPane = new JScrollPane(myJTable);
226
        this.add(mainPanel, BorderLayout.NORTH);
178
        this.add(mainPanel, BorderLayout.NORTH);
227
        this.add(myScrollPane, BorderLayout.CENTER);
179
        this.add(myScrollPane, BorderLayout.CENTER);
(-)src/core/org/apache/jmeter/gui/util/HeaderAsPropertyRenderer.java (-1 / +18 lines)
Lines 19-24 Link Here
19
package org.apache.jmeter.gui.util;
19
package org.apache.jmeter.gui.util;
20
20
21
import java.awt.Component;
21
import java.awt.Component;
22
import java.text.MessageFormat;
22
23
23
import javax.swing.JTable;
24
import javax.swing.JTable;
24
import javax.swing.SwingConstants;
25
import javax.swing.SwingConstants;
Lines 34-42 Link Here
34
public class HeaderAsPropertyRenderer extends DefaultTableCellRenderer {
35
public class HeaderAsPropertyRenderer extends DefaultTableCellRenderer {
35
36
36
    private static final long serialVersionUID = 240L;
37
    private static final long serialVersionUID = 240L;
38
    private Object[][] columnsMsgParameters;
37
39
40
    /**
41
     * 
42
     */
38
    public HeaderAsPropertyRenderer() {
43
    public HeaderAsPropertyRenderer() {
44
        this(null);
45
    }
46
    
47
    /**
48
     * @param columnsMsgParameters Optional parameters of i18n keys
49
     */
50
    public HeaderAsPropertyRenderer(Object[][] columnsMsgParameters) {
39
        super();
51
        super();
52
        this.columnsMsgParameters = columnsMsgParameters;
40
    }
53
    }
41
54
42
    @Override
55
    @Override
Lines 68-73 Link Here
68
        if (value == null){
81
        if (value == null){
69
            return "";
82
            return "";
70
        }
83
        }
71
        return JMeterUtils.getResString(value.toString());
84
        if(columnsMsgParameters != null && columnsMsgParameters[column] != null) {
85
            return MessageFormat.format(JMeterUtils.getResString(value.toString()), columnsMsgParameters[column]);
86
        } else {
87
            return JMeterUtils.getResString(value.toString());
88
        }
72
    }
89
    }
73
}
90
}
(-)src/core/org/apache/jmeter/resources/messages.properties (-1 / +3 lines)
Lines 77-84 Link Here
77
aggregate_graph_yaxis_group=Y Axis (milli-seconds)
77
aggregate_graph_yaxis_group=Y Axis (milli-seconds)
78
aggregate_graph_yaxis_max_value=Scale maximum value\:
78
aggregate_graph_yaxis_max_value=Scale maximum value\:
79
aggregate_report=Aggregate Report
79
aggregate_report=Aggregate Report
80
aggregate_report_xx_pct1_line={0}% Line
81
aggregate_report_xx_pct2_line={0}% Line
82
aggregate_report_xx_pct3_line={0}% Line
80
aggregate_report_90=90%
83
aggregate_report_90=90%
81
aggregate_report_90%_line=90% Line
82
aggregate_report_bandwidth=KB/sec
84
aggregate_report_bandwidth=KB/sec
83
aggregate_report_count=# Samples
85
aggregate_report_count=# Samples
84
aggregate_report_error=Error
86
aggregate_report_error=Error
(-)src/core/org/apache/jmeter/resources/messages_fr.properties (-1 / +3 lines)
Lines 71-78 Link Here
71
aggregate_graph_yaxis_group=Ordonn\u00E9es (milli-secondes)
71
aggregate_graph_yaxis_group=Ordonn\u00E9es (milli-secondes)
72
aggregate_graph_yaxis_max_value=Echelle maximum \:
72
aggregate_graph_yaxis_max_value=Echelle maximum \:
73
aggregate_report=Rapport agr\u00E9g\u00E9
73
aggregate_report=Rapport agr\u00E9g\u00E9
74
aggregate_report_xx_pct1_line={0}% centile
75
aggregate_report_xx_pct2_line={0}% centile
76
aggregate_report_xx_pct3_line={0}% centile
74
aggregate_report_90=90%
77
aggregate_report_90=90%
75
aggregate_report_90%_line=90e centile
76
aggregate_report_bandwidth=Ko/sec
78
aggregate_report_bandwidth=Ko/sec
77
aggregate_report_count=\# Echantillons
79
aggregate_report_count=\# Echantillons
78
aggregate_report_error=Erreur
80
aggregate_report_error=Erreur
(-)xdocs/usermanual/component_reference.xml (-1 / +13 lines)
Lines 2922-2933 Link Here
2922
</p>
2922
</p>
2923
<p>
2923
<p>
2924
Calculation of the <a href="glossary.html#Median">Median</a> and 90% Line (90<sup>th</sup> <a href="glossary.html#Percentile">percentile</a>) values requires additional memory.
2924
Calculation of the <a href="glossary.html#Median">Median</a> and 90% Line (90<sup>th</sup> <a href="glossary.html#Percentile">percentile</a>) values requires additional memory.
2925
For JMeter 2.3.4 and earlier, details of each sample were saved separately, which meant a lot of memory was needed.
2926
JMeter now combines samples with the same elapsed time, so far less memory is used.
2925
JMeter now combines samples with the same elapsed time, so far less memory is used.
2927
However, for samples that take more than a few seconds, the probability is that fewer samples will have identical times,
2926
However, for samples that take more than a few seconds, the probability is that fewer samples will have identical times,
2928
in which case more memory will be needed.
2927
in which case more memory will be needed.
2928
Note you can use this listener afterwards to reload a CSV or XML results file which is the recommended way to avoid performance impacts.
2929
See the <complink name="Summary Report"/> for a similar Listener that does not store individual samples and so needs constant memory.
2929
See the <complink name="Summary Report"/> for a similar Listener that does not store individual samples and so needs constant memory.
2930
</p>
2930
</p>
2931
<note>
2932
Starting with JMeter 2.12, you can configure the 3 percentile values you want to compute, this can be done by setting properties:
2933
<ul>
2934
    <li>aggregate_rpt_pct1: defaults to 90<sup>th</sup> <a href="glossary.html#Percentile">percentile</a></li>
2935
    <li>aggregate_rpt_pct2: defaults to 95<sup>th</sup> <a href="glossary.html#Percentile">percentile</a></li>
2936
    <li>aggregate_rpt_pct3: defaults to 99<sup>th</sup> <a href="glossary.html#Percentile">percentile</a></li>
2937
</ul>
2938
</note>
2931
<ul>
2939
<ul>
2932
<li>Label - The label of the sample.
2940
<li>Label - The label of the sample.
2933
If "Include group name in label?" is selected, then the name of the thread group is added as a prefix.
2941
If "Include group name in label?" is selected, then the name of the thread group is added as a prefix.
Lines 2939-2944 Link Here
2939
50% of the samples took no more than this time; the remainder took at least as long.</li>
2947
50% of the samples took no more than this time; the remainder took at least as long.</li>
2940
<li>90% Line - 90% of the samples took no more than this time.
2948
<li>90% Line - 90% of the samples took no more than this time.
2941
The remaining samples took at least as long as this. (90<sup>th</sup> <a href="glossary.html#Percentile">percentile</a>)</li>
2949
The remaining samples took at least as long as this. (90<sup>th</sup> <a href="glossary.html#Percentile">percentile</a>)</li>
2950
<li>95% Line - 95% of the samples took no more than this time.
2951
The remaining samples took at least as long as this. (95<sup>th</sup> <a href="glossary.html#Percentile">percentile</a>)</li>
2952
<li>99% Line - 99% of the samples took no more than this time.
2953
The remaining samples took at least as long as this. (99<sup>th</sup> <a href="glossary.html#Percentile">percentile</a>)</li>
2942
<li>Min - The shortest time for the samples with the same label</li>
2954
<li>Min - The shortest time for the samples with the same label</li>
2943
<li>Max - The longest time for the samples with the same label</li>
2955
<li>Max - The longest time for the samples with the same label</li>
2944
<li>Error % - Percent of requests with errors</li>
2956
<li>Error % - Percent of requests with errors</li>

Return to bug 57217