优化统计效率
This commit is contained in:
@@ -87,7 +87,7 @@ public class HttpSampleAnalyzer {
|
|||||||
samplesByInterface.forEach((interfaceName, interfaceSamples) -> {
|
samplesByInterface.forEach((interfaceName, interfaceSamples) -> {
|
||||||
// 过滤出该接口的错误请求
|
// 过滤出该接口的错误请求
|
||||||
List<HttpSample> errorSamples = interfaceSamples.stream()
|
List<HttpSample> errorSamples = interfaceSamples.stream()
|
||||||
.filter(s -> !"true".equals(s.getS()))
|
.filter(s -> !s.getS())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 按错误码统计
|
// 按错误码统计
|
||||||
@@ -116,7 +116,7 @@ public class HttpSampleAnalyzer {
|
|||||||
samplesByInterface.forEach((interfaceName, interfaceSamples) -> {
|
samplesByInterface.forEach((interfaceName, interfaceSamples) -> {
|
||||||
long total = interfaceSamples.size();
|
long total = interfaceSamples.size();
|
||||||
long errors = interfaceSamples.stream()
|
long errors = interfaceSamples.stream()
|
||||||
.filter(s -> !"true".equals(s.getS()))
|
.filter(s -> !s.getS())
|
||||||
.count();
|
.count();
|
||||||
|
|
||||||
result.put(interfaceName, new InterfaceErrorStat(interfaceName, total, errors));
|
result.put(interfaceName, new InterfaceErrorStat(interfaceName, total, errors));
|
||||||
|
|||||||
@@ -490,7 +490,7 @@ public class JMeterGroupUtil {
|
|||||||
sampleSaveConfiguration.setSamplerData(true);
|
sampleSaveConfiguration.setSamplerData(true);
|
||||||
sampleSaveConfiguration.setAsXml(true);
|
sampleSaveConfiguration.setAsXml(true);
|
||||||
sampleSaveConfiguration.setFieldNames(true);
|
sampleSaveConfiguration.setFieldNames(true);
|
||||||
sampleSaveConfiguration.setResponseHeaders(true);
|
sampleSaveConfiguration.setResponseHeaders(false);
|
||||||
sampleSaveConfiguration.setRequestHeaders(false);
|
sampleSaveConfiguration.setRequestHeaders(false);
|
||||||
sampleSaveConfiguration.setAssertionResultsFailureMessage(true);
|
sampleSaveConfiguration.setAssertionResultsFailureMessage(true);
|
||||||
//sampleSaveConfiguration.setsserAtionsResultsToSave(0); assertionsResultsToSave
|
//sampleSaveConfiguration.setsserAtionsResultsToSave(0); assertionsResultsToSave
|
||||||
@@ -549,23 +549,26 @@ public class JMeterGroupUtil {
|
|||||||
// 初始化统计变量
|
// 初始化统计变量
|
||||||
Map<String, LabelStats> labelStatsMap = new LinkedHashMap<>();
|
Map<String, LabelStats> labelStatsMap = new LinkedHashMap<>();
|
||||||
List<HttpSample> samples = new ArrayList<>();
|
List<HttpSample> samples = new ArrayList<>();
|
||||||
long startTime = Long.MAX_VALUE;
|
// long startTime = Long.MAX_VALUE;
|
||||||
long endTime = Long.MIN_VALUE;
|
// long endTime = Long.MIN_VALUE;
|
||||||
long totalRequests = 0;
|
long totalRequests = 0;
|
||||||
long failedRequests = 0;
|
long failedRequests = 0;
|
||||||
long totalResponseTime = 0;
|
long totalResponseTime = 0;
|
||||||
long totalMinResponseTime = Long.MAX_VALUE;
|
long totalMinResponseTime = Long.MAX_VALUE;
|
||||||
long totalMaxResponseTime = Long.MIN_VALUE;
|
long totalMaxResponseTime = Long.MIN_VALUE;
|
||||||
|
long totalTimeMillis = 0;
|
||||||
for (int i = 0; i < httpSampleList.getLength(); i++) {
|
for (int i = 0; i < httpSampleList.getLength(); i++) {
|
||||||
Node httpSampleNode = httpSampleList.item(i);
|
Node httpSampleNode = httpSampleList.item(i);
|
||||||
if (httpSampleNode.getNodeType() == Node.ELEMENT_NODE) {
|
if (httpSampleNode.getNodeType() == Node.ELEMENT_NODE) {
|
||||||
Map<String, String> resultMap = new HashMap<>();
|
|
||||||
Element httpSampleElement = (Element) httpSampleNode;
|
Element httpSampleElement = (Element) httpSampleNode;
|
||||||
// 提取字段
|
// 提取字段
|
||||||
String label = httpSampleElement.getAttribute("lb");
|
String label = httpSampleElement.getAttribute("lb");
|
||||||
boolean success = Boolean.parseBoolean(httpSampleElement.getAttribute("s"));
|
boolean success = Boolean.parseBoolean(httpSampleElement.getAttribute("s"));
|
||||||
long responseTime = Long.parseLong(httpSampleElement.getAttribute("t"));
|
long responseTime = Long.parseLong(httpSampleElement.getAttribute("t"));
|
||||||
long timestamp = Long.parseLong(httpSampleElement.getAttribute("ts"));
|
long lt = Long.parseLong(httpSampleElement.getAttribute("lt"));
|
||||||
|
long ct = Long.parseLong(httpSampleElement.getAttribute("ct"));
|
||||||
|
totalTimeMillis += responseTime + lt + ct;
|
||||||
|
// long timestamp = Long.parseLong(httpSampleElement.getAttribute("ts"));
|
||||||
long receivedBytes = Long.parseLong(httpSampleElement.getAttribute("by"));
|
long receivedBytes = Long.parseLong(httpSampleElement.getAttribute("by"));
|
||||||
long sentBytes = Long.parseLong(httpSampleElement.getAttribute("sby"));
|
long sentBytes = Long.parseLong(httpSampleElement.getAttribute("sby"));
|
||||||
String responseCode = httpSampleElement.getAttribute("rc");
|
String responseCode = httpSampleElement.getAttribute("rc");
|
||||||
@@ -579,8 +582,8 @@ public class JMeterGroupUtil {
|
|||||||
if (!success) {
|
if (!success) {
|
||||||
failedRequests++;
|
failedRequests++;
|
||||||
}
|
}
|
||||||
startTime = Math.min(startTime, timestamp);
|
// startTime = Math.min(startTime, timestamp);
|
||||||
endTime = Math.max(endTime, timestamp);
|
// endTime = Math.max(endTime, timestamp);
|
||||||
// 更新按标签的统计
|
// 更新按标签的统计
|
||||||
LabelStats stats = labelStatsMap.getOrDefault(label, new LabelStats());
|
LabelStats stats = labelStatsMap.getOrDefault(label, new LabelStats());
|
||||||
stats.totalRequests++;
|
stats.totalRequests++;
|
||||||
@@ -596,7 +599,8 @@ public class JMeterGroupUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 计算总时长(秒)
|
// 计算总时长(秒)
|
||||||
double totalTimeInSeconds = (endTime - startTime) / 1000.0;
|
double totalTimeInSeconds = totalTimeMillis / 1000.0;
|
||||||
|
// double totalTimeInSeconds2 = (endTime - startTime) / 1000.0;
|
||||||
|
|
||||||
// 输出汇总报告
|
// 输出汇总报告
|
||||||
for (Map.Entry<String, LabelStats> entry : labelStatsMap.entrySet()) {
|
for (Map.Entry<String, LabelStats> entry : labelStatsMap.entrySet()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user