package kg.apc.jmeter.vizualizers;
import java.awt.Color;
import kg.apc.charting.AbstractGraphRow;
import kg.apc.charting.rows.GraphRowAverages;
import kg.apc.charting.rows.GraphRowOverallAverages;
import kg.apc.jmeter.JMeterPluginsUtils;
import kg.apc.jmeter.graphs.AbstractVsThreadVisualizer;
import org.apache.jmeter.samplers.SampleResult;
public class TimesVsThreadsGui
extends AbstractVsThreadVisualizer {
/**
*
*/
public TimesVsThreadsGui() {
super();
graphPanel.getGraphObject().setYAxisLabel("Response times in ms");
}
@Override
public String getLabelResource() {
return this.getClass().getSimpleName();
}
@Override
public String getStaticLabel() {
return JMeterPluginsUtils.prefixLabel("Response Times vs Threads");
}
@Override
public void add(SampleResult res) {
if (!isSampleIncluded(res)) {
return;
}
super.add(res);
String label = res.getSampleLabel();
String averageLabel = "Average " + res.getSampleLabel();
String aggLabel = "Overall Response Times";
String avgAggLabel = "Average " + aggLabel;
GraphRowAverages row = (GraphRowAverages) model.get(label);
GraphRowOverallAverages avgRow = (GraphRowOverallAverages) model.get(averageLabel);
GraphRowAverages rowAgg = (GraphRowAverages) modelAggregate.get(aggLabel);
GraphRowOverallAverages avgRowAgg = (GraphRowOverallAverages) modelAggregate.get(avgAggLabel);
if (row == null || avgRow == null) {
row = (GraphRowAverages) getNewRow(model, AbstractGraphRow.ROW_AVERAGES, label, AbstractGraphRow.MARKER_SIZE_SMALL, false, false, false, true, false);
avgRow = (GraphRowOverallAverages) getNewRow(model, AbstractGraphRow.ROW_OVERALL_AVERAGES, averageLabel, AbstractGraphRow.MARKER_SIZE_BIG, false, true, false, false, row.getColor(), false);
}
if (rowAgg == null || avgRowAgg == null) {
rowAgg = (GraphRowAverages) getNewRow(modelAggregate, AbstractGraphRow.ROW_AVERAGES, aggLabel, AbstractGraphRow.MARKER_SIZE_SMALL, false, false, false, true, Color.RED, false);
avgRowAgg = (GraphRowOverallAverages) getNewRow(modelAggregate, AbstractGraphRow.ROW_OVERALL_AVERAGES, avgAggLabel, AbstractGraphRow.MARKER_SIZE_BIG, false, true, false, false, Color.RED, false);
}
int threadsCount = getCurrentThreadCount(res);
row.add(threadsCount, res.getTime());
avgRow.add(threadsCount, res.getTime());
rowAgg.add(threadsCount, res.getTime());
avgRowAgg.add(threadsCount, res.getTime());
graphPanel.getGraphObject().setCurrentX(res.getAllThreads());
updateGui(null);
}
@Override
protected JSettingsPanel createSettingsPanel() {
return new JSettingsPanel(this,
JSettingsPanel.GRADIENT_OPTION
| JSettingsPanel.CURRENTX_OPTION
| JSettingsPanel.HIDE_NON_REP_VALUES_OPTION
| JSettingsPanel.MAXY_OPTION
| JSettingsPanel.AGGREGATE_OPTION);
}
@Override
public String getWikiPage() {
return "ResponseTimesVsThreads";
}
}