Jmeter Json提取

This commit is contained in:
liangdaliang
2025-04-24 09:15:40 +08:00
parent bfea486350
commit d5b6341b21
4 changed files with 72 additions and 74 deletions

View File

@@ -2,14 +2,17 @@ package com.test.test.service.impl;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.test.common.core.domain.model.*;
import com.test.common.utils.DateUtils;
import com.test.common.utils.JMeterGroupUtil;
import com.test.common.utils.SecurityUtils;
import com.test.common.utils.StringUtils;
import com.test.test.domain.PerformanceTest;
import com.test.test.domain.PerformanceTestCase;
import com.test.test.domain.PerformanceTestCaseReport;
import com.test.test.domain.TestCaseStep;
import com.test.test.domain.qo.ExtractionRule;
import com.test.test.mapper.PerformanceTestCaseMapper;
import com.test.test.mapper.PerformanceTestCaseReportMapper;
import com.test.test.mapper.PerformanceTestMapper;
@@ -21,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -164,6 +168,20 @@ public class PerformanceTestCaseReportServiceImpl implements IPerformanceTestCas
jmeterRequest.setRequestBody(testCaseStep.getRequestBody());
jmeterRequest.setRequestParams(testCaseStep.getRequestParams());
jmeterRequest.setRequestHeader(testCaseStep.getRequestHeader());
// Json提取表达式
String assignment = testCaseStep.getAssignment();
if (!StringUtils.isEmpty(assignment) && !"[]".equals(assignment)) {
Gson gson = new Gson();
Type ruleListType = new TypeToken<List<ExtractionRule>>() {}.getType();
List<ExtractionRule> rules = gson.fromJson(assignment, ruleListType);
if (!CollectionUtils.isEmpty(rules)) {
List<String> extractionRuleList = new ArrayList<>();
for (ExtractionRule rule : rules) {
extractionRuleList.add(rule.getName() + "," + rule.getPath());
jmeterRequest.setExtractionRuleList(extractionRuleList);
}
}
}
log.info("getRequestHeader:{}", jmeterRequest.getRequestHeader());
return jmeterRequest;
}