kg.apc.jmeter.vizualizers.ResponseTimesDistributionGui Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jmeter-plugins-extras Show documentation
Show all versions of jmeter-plugins-extras Show documentation
Custom plugins set for Apache JMeter
package kg.apc.jmeter.vizualizers;
import java.awt.Color;
import kg.apc.charting.AbstractGraphRow;
import kg.apc.jmeter.JMeterPluginsUtils;
import kg.apc.jmeter.graphs.AbstractGraphPanelVisualizer;
import org.apache.jmeter.samplers.SampleResult;
public class ResponseTimesDistributionGui
extends AbstractGraphPanelVisualizer {
/**
*
*/
public ResponseTimesDistributionGui() {
super();
setGranulation(100);
graphPanel.getGraphObject().setxAxisLabel("Response times in ms");
graphPanel.getGraphObject().setYAxisLabel("Number of responses");
}
private void addThreadGroupRecord(String threadGroupName, long time, int granulation) {
String aggLabel = "Overall Response Times";
AbstractGraphRow row = model.get(threadGroupName);
AbstractGraphRow rowAgg = modelAggregate.get(aggLabel);
if (row == null) {
row = getNewRow(model, AbstractGraphRow.ROW_SUM_VALUES, threadGroupName, AbstractGraphRow.MARKER_SIZE_NONE, true, false, false, true, false);
}
if (rowAgg == null) {
rowAgg = getNewRow(modelAggregate, AbstractGraphRow.ROW_SUM_VALUES, aggLabel, AbstractGraphRow.MARKER_SIZE_NONE, true, false, false, true, Color.RED, false);
}
row.add(time, 1);
row.setGranulationValue(granulation);
rowAgg.add(time, 1);
rowAgg.setGranulationValue(granulation);
}
@Override
public String getLabelResource() {
return this.getClass().getSimpleName();
}
@Override
public String getStaticLabel() {
return JMeterPluginsUtils.prefixLabel("Response Times Distribution");
}
@Override
public void add(SampleResult res) {
if (!isSampleIncluded(res)) {
return;
}
int granulation = getGranulation();
addThreadGroupRecord(res.getSampleLabel(), res.getTime() - res.getTime() % granulation, granulation);
updateGui(null);
}
@Override
protected JSettingsPanel createSettingsPanel() {
return new JSettingsPanel(this,
JSettingsPanel.TIMELINE_OPTION
| JSettingsPanel.GRADIENT_OPTION
| JSettingsPanel.BAR_CHART_X_LIMIT_OPTION
| JSettingsPanel.AGGREGATE_OPTION
| JSettingsPanel.MARKERS_OPTION
| JSettingsPanel.CHART_TYPE_OPTION);
}
@Override
public String getWikiPage() {
return "RespTimesDistribution";
}
}