package kg.apc.jmeter.vizualizers;
import java.awt.Color;
import kg.apc.charting.AbstractGraphRow;
import kg.apc.charting.DividerRenderer;
import kg.apc.charting.rows.GraphRowPercentiles;
import kg.apc.jmeter.JMeterPluginsUtils;
import kg.apc.jmeter.graphs.AbstractGraphPanelVisualizer;
import org.apache.jmeter.samplers.SampleResult;
public class ResponseTimesPercentilesGui
extends AbstractGraphPanelVisualizer {
/**
*
*/
public ResponseTimesPercentilesGui() {
super();
graphPanel.getGraphObject().setForcedMinX(0);
graphPanel.getGraphObject().setxAxisLabel("Percentiles");
graphPanel.getGraphObject().setYAxisLabel("Percentile value in ms");
graphPanel.getGraphObject().setxAxisLabelRenderer(new DividerRenderer(10));
}
@Override
public String getLabelResource() {
return this.getClass().getSimpleName();
}
@Override
public String getStaticLabel() {
return JMeterPluginsUtils.prefixLabel("Response Times Percentiles");
}
@Override
public void add(SampleResult res) {
if (!isSampleIncluded(res)) {
return;
}
String label = res.getSampleLabel();
String aggregateLabel = "Overall Response Times";
GraphRowPercentiles row = (GraphRowPercentiles) model.get(label);
GraphRowPercentiles rowAgg = (GraphRowPercentiles) modelAggregate.get(label);
if (row == null) {
row = (GraphRowPercentiles) getNewRow(model, AbstractGraphRow.ROW_PERCENTILES, label, AbstractGraphRow.MARKER_SIZE_NONE, false, false, false, true, false);
}
if (rowAgg == null) {
rowAgg = (GraphRowPercentiles) getNewRow(modelAggregate, AbstractGraphRow.ROW_PERCENTILES, aggregateLabel, AbstractGraphRow.MARKER_SIZE_NONE, false, false, false, true, Color.RED, false);
}
row.add(res.getTime(), 1);
rowAgg.add(res.getTime(), 1);
updateGui(null);
}
@Override
protected JSettingsPanel createSettingsPanel() {
return new JSettingsPanel(this,
JSettingsPanel.GRADIENT_OPTION
| JSettingsPanel.MAXY_OPTION
| JSettingsPanel.AGGREGATE_OPTION
| JSettingsPanel.LIMIT_POINT_OPTION
| JSettingsPanel.MARKERS_OPTION_DISABLED);
}
@Override
public String getWikiPage() {
return "RespTimePercentiles";
}
}