diff --git a/test-common/pom.xml b/test-common/pom.xml
index 147a906..281613a 100644
--- a/test-common/pom.xml
+++ b/test-common/pom.xml
@@ -52,13 +52,13 @@
org.apache.commons
commons-lang3
-
+
com.fasterxml.jackson.core
jackson-databind
-
+
com.alibaba.fastjson2
@@ -119,6 +119,35 @@
jakarta.servlet-api
+
+
+ org.apache.jmeter
+ ApacheJMeter_core
+ 5.4.3
+
+
+ org.apache.jmeter
+ ApacheJMeter_components
+ 5.4.3
+
+
+ org.apache.jmeter
+ ApacheJMeter_http
+ 5.4.3
+
+
+ junit
+ junit
+ 4.13.1
+ test
+
+
+ com.google.code.gson
+ gson
+ 2.10.1
+
+
+
-
\ No newline at end of file
+
diff --git a/test-common/src/main/java/com/test/common/utils/JMeterUtil.java b/test-common/src/main/java/com/test/common/utils/JMeterUtil.java
new file mode 100644
index 0000000..1d8bec9
--- /dev/null
+++ b/test-common/src/main/java/com/test/common/utils/JMeterUtil.java
@@ -0,0 +1,421 @@
+package com.test.common.utils;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import org.apache.jmeter.config.Arguments;
+import org.apache.jmeter.config.gui.ArgumentsPanel;
+import org.apache.jmeter.control.LoopController;
+import org.apache.jmeter.control.gui.LoopControlPanel;
+import org.apache.jmeter.control.gui.TestPlanGui;
+import org.apache.jmeter.engine.StandardJMeterEngine;
+import org.apache.jmeter.protocol.http.control.Header;
+import org.apache.jmeter.protocol.http.control.HeaderManager;
+import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui;
+import org.apache.jmeter.protocol.http.gui.HeaderPanel;
+import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
+import org.apache.jmeter.reporters.ResultCollector;
+import org.apache.jmeter.reporters.Summariser;
+import org.apache.jmeter.samplers.SampleSaveConfiguration;
+import org.apache.jmeter.save.SaveService;
+import org.apache.jmeter.testelement.TestElement;
+import org.apache.jmeter.testelement.TestPlan;
+import org.apache.jmeter.testelement.property.BooleanProperty;
+import org.apache.jmeter.testelement.property.ObjectProperty;
+import org.apache.jmeter.testelement.property.StringProperty;
+import org.apache.jmeter.threads.ThreadGroup;
+import org.apache.jmeter.threads.gui.ThreadGroupGui;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.collections.HashTree;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.lang.reflect.Type;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author liangdaliang
+ * @Description:JMeterter工具类
+ * @date 2025-02-12 9:12
+ */
+public class JMeterUtil {
+
+ /**
+ * 生成jmeter测试执行计划并获取执行结果
+ * @param id
+ * @param url
+ * @param port
+ * @param method
+ * @param paramJson
+ * @param requestHeader
+ * @param jmeterHomePath
+ * @return
+ */
+ public static String getJmeterResult(Long id, String url, int port, String method, String paramJson, String requestHeader, String jmeterHomePath) {
+ String result = "";
+ try {
+ // 1. 初始化 JMeter
+ JMeterUtils.loadJMeterProperties(jmeterHomePath + "/bin/jmeter.properties");
+ JMeterUtils.setJMeterHome(jmeterHomePath);
+ JMeterUtils.initLocale();
+
+ // 2. 创建测试计划
+ TestPlan testPlan = createTestPlan("Dynamic Test Plan");
+
+ // 3. 创建线程组
+ ThreadGroup threadGroup = createThreadGroup(1, 1);
+
+ // 4. 创建 HTTP 请求
+ HTTPSamplerProxy httpSampler = null;
+ if ("POST".equals(method)) {
+ httpSampler = createPostHttpSampler(
+ url, // 请求地址
+ port,
+ paramJson // 请求参数
+ );
+ } else {
+ httpSampler = createGetHttpSampler(
+ url, // 请求地址
+ port,
+ paramJson // 请求参数
+ );
+ }
+ // 5. 创建请求头管理器
+ Map headerMap = new HashMap<>();
+ if (!StringUtils.isEmpty(requestHeader)) {
+ Gson gson = new Gson();
+ // 定义 Map 的类型
+ Type type = new TypeToken