/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.apache.jmeter.report.processor; /** * The class ApdexSummaryData provides information for * StatisticsSummaryConsumer. * * @since 3.0 * */ public class StatisticsSummaryData { private long firstTime = Long.MAX_VALUE; private long endTime = Long.MIN_VALUE; private long bytes = 0L; private long sentBytes = 0L; private long errors = 0L; private long total = 0L; private final MeanAggregator mean; private final PercentileAggregator percentile1; private final PercentileAggregator percentile2; private final PercentileAggregator percentile3; private long min = Long.MAX_VALUE; private long max = Long.MIN_VALUE; public long getElapsedTime() { return endTime - firstTime; } /** * Gets the first time. * * @return the firstTime */ public final long getFirstTime() { return firstTime; } /** * Sets the first time. * * @param firstTime * the firstTime to set */ public final void setFirstTime(long firstTime) { this.firstTime = Math.min(this.firstTime, firstTime); } /** * Gets the end time. * * @return the endTime */ public final long getEndTime() { return endTime; } /** * Sets the end time. * * @param endTime * the endTime to set */ public final void setEndTime(long endTime) { this.endTime = Math.max(this.endTime, endTime); } /** * Gets the bytes. * * @return the bytes */ public final long getBytes() { return bytes; } /** * Sets the bytes. * * @param bytes * the bytes to set */ public final void setBytes(long bytes) { this.bytes = bytes; } /** * @return the errors */ public final long getErrors() { return errors; } /** * @param errors * the errors to set */ public final void setErrors(long errors) { this.errors = errors; } /** * @return the total */ public final long getTotal() { return total; } /** * @param total * the total to set */ public final void setTotal(long total) { this.total = total; } /** * @return the min */ public final long getMin() { return min; } /** * @param min * the min to set */ public final void setMin(long min) { this.min = Math.min(this.min, min); } /** * @return the max */ public final long getMax() { return max; } /** * @param max * the max to set */ public final void setMax(long max) { this.max = Math.max(this.max, max); } /** * @return the percentile1 */ public final PercentileAggregator getPercentile1() { return percentile1; } /** * Gets the percentile2. * * @return the percentile2 */ public final PercentileAggregator getPercentile2() { return percentile2; } /** * Gets the percentile3. * * @return the percentile3 */ public final PercentileAggregator getPercentile3() { return percentile3; } /** * Instantiates a new statistics info. * @param percentileIndex1 value of first percentile * @param percentileIndex2 value of second percentile * @param percentileIndex3 value of third percentile */ public StatisticsSummaryData(long percentileIndex1, long percentileIndex2, long percentileIndex3) { percentile1 = new PercentileAggregator(percentileIndex1); percentile2 = new PercentileAggregator(percentileIndex2); percentile3 = new PercentileAggregator(percentileIndex3); mean = new MeanAggregator(); } /** * Gets the bytes per second. * * @return the bytes per second */ public double getBytesPerSecond() { return bytes / ((double) getElapsedTime() / 1000); } /** * Gets the kilo bytes per second. * * @return the kilo bytes per second */ public double getKBytesPerSecond() { return getBytesPerSecond() / 1024; } /** * Gets the throughput. * * @return the throughput */ public double getThroughput() { return (total / (double) getElapsedTime()) * 1000.0; } public void incTotal() { total++; } /** * Increment received bytes * @param value bytes */ public void incBytes(long value) { bytes += value; } /** * Increment sent bytes * @param value bytes */ public void incSentBytes(long value) { sentBytes += value; } public void incErrors() { errors++; } /** * @return the mean response times */ public MeanAggregator getMean() { return mean; } /** * @return the sentBytes */ public long getSentBytes() { return sentBytes; } /** * Gets the sent bytes per second. * * @return the sent bytes per second */ public double getSentBytesPerSecond() { return sentBytes / ((double) getElapsedTime() / 1000); } /** * Gets the sent kilo bytes per second. * * @return the sent kilo bytes per second */ public double getSentKBytesPerSecond() { return getSentBytesPerSecond() / 1024; } }