📄 statisticalsampleresult.java
字号:
/*
* 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.samplers;
import java.io.Serializable;
/**
* Aggregates sample results for use by the Statistical remote batch mode.
* Samples are aggregated by the key defined by getKey().
* TODO: merge error count into parent class?
*/
public class StatisticalSampleResult extends SampleResult implements
Serializable {
private static final long serialVersionUID = 24L;
private int errorCount;
public StatisticalSampleResult(){// May be called by XStream
}
/**
* Allow OldSaveService to generate a suitable result when sample/error counts have been saved.
*
* @deprecated Needs to be replaced when multiple sample results are sorted out
*
* @param stamp
* @param elapsed
*/
public StatisticalSampleResult(long stamp, long elapsed) {
super(stamp, elapsed);
}
public StatisticalSampleResult(SampleResult res) {
// Copy data that is shared between samples (i.e. the key items):
setSampleLabel(res.getSampleLabel());
// Nothing else can be saved, as the samples may come from any thread
setSuccessful(true); // Assume result is OK
setSampleCount(0); // because we add the sample count in later
}
public void add(SampleResult res) {
// Add Sample Counter
setSampleCount(getSampleCount() + res.getSampleCount());
setBytes(getBytes() + res.getBytes());
// Add Error Counter
if (!res.isSuccessful()) {
errorCount++;
this.setSuccessful(false);
}
// Set start/end times
if (getStartTime()==0){ // Bug 40954 - ensure start time gets started!
this.setStartTime(res.getStartTime());
} else {
this.setStartTime(Math.min(getStartTime(), res.getStartTime()));
}
this.setEndTime(Math.max(getEndTime(), res.getEndTime()));
setLatency(getLatency()+ res.getLatency());
}
public long getTime() {
return getEndTime() - getStartTime() - this.getIdleTime();
}
public long getTimeStamp() {
return getEndTime();
}
public int getErrorCount() {// Overrides SampleResult
return errorCount;
}
public void setErrorCount(int e) {// for reading CSV files
errorCount = e;
}
/**
* Generates the key to be used for aggregating samples as follows:<br/>
* <code>sampleLabel</code> "-" <code>threadGroup</code>
*
* N.B. the key should agree with the fixed items that are saved in the sample.
*
* @param event sample event whose key is to be calculated
* @return the key to use for aggregating samples
*/
public static String getKey(SampleEvent event) {
StringBuffer sb = new StringBuffer(80);
sb.append(event.getResult().getSampleLabel()).append("-").append(event.getThreadGroup());
return sb.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -