All Downloads are FREE. Search and download functionalities are using the official Maven repository.

us.abstracta.jmeter.javadsl.core.TestPlanStats Maven / Gradle / Ivy

Go to download

Simple API to run JMeter performance tests in an VCS and programmers friendly way.

There is a newer version: 028
Show newest version
package us.abstracta.jmeter.javadsl.core;

import java.time.Duration;
import java.time.Instant;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Supplier;
import org.apache.jmeter.samplers.SampleResult;
import us.abstracta.jmeter.javadsl.core.stats.StatsSummary;

/**
 * Contains all statistics collected during the execution of a test plan.
 * 

* When using different samples, specify different names on them to be able to get each sampler * specific statistics after they run. * * @since 0.1 */ public class TestPlanStats { protected final Supplier statsSummaryBuilder; protected StatsSummary overallStats; protected final Map labeledStats = new ConcurrentHashMap<>(); private Instant start; private Instant end; public TestPlanStats(Supplier statsSummaryBuilder) { this.statsSummaryBuilder = statsSummaryBuilder; overallStats = statsSummaryBuilder.get(); } public synchronized void addSampleResult(SampleResult result) { overallStats.add(result); StatsSummary labelStats = labeledStats.computeIfAbsent( result.getSampleLabel(), label -> statsSummaryBuilder.get()); labelStats.add(result); } public void setStart(Instant start) { this.start = start; } public void setEnd(Instant end) { this.end = end; } /** * Provides the time taken to run the test plan. */ public Duration duration() { return Duration.between(start, end); } /** * Provides statistics for the entire test plan. */ public StatsSummary overall() { return overallStats; } /** * Provides statistics for a specific label (usually a sampler label). */ public StatsSummary byLabel(String label) { return labeledStats.get(label); } /** * Provides a set of collected labels (usually samplers labels). */ public Set labels() { return labeledStats.keySet(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy