From 31f8c9155e352b24b55d8de8914c2581ddf7fa38 Mon Sep 17 00:00:00 2001 From: cheney Date: Fri, 29 May 2026 17:18:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=80=A7?= =?UTF-8?q?=E8=83=BD=E6=B5=8B=E8=AF=95=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/cmbpoc/JmeterTest.java | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/cmbpoc/JmeterTest.java diff --git a/src/test/java/cmbpoc/JmeterTest.java b/src/test/java/cmbpoc/JmeterTest.java new file mode 100644 index 0000000..224e19e --- /dev/null +++ b/src/test/java/cmbpoc/JmeterTest.java @@ -0,0 +1,67 @@ +package cmbpoc; + + +import org.apache.jmeter.config.Arguments; +import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; +import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; +import org.apache.jmeter.samplers.SampleResult; + +import java.nio.charset.StandardCharsets; +import java.util.Base64; + +public class JmeterTest extends AbstractJavaSamplerClient { + + private byte[] publicKey; + private byte[] plainData; + + @Override + public Arguments getDefaultParameters() { + Arguments params = new Arguments(); + params.addArgument("publicKeyBase64", "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE..."); + params.addArgument("plainText", "Hello JMeter"); + return params; + } + + @Override + public void setupTest(JavaSamplerContext context) { + // 初始化:将 Base64 参数转为字节数组,避免每个循环都转换 + String pubBase64 = context.getParameter("publicKeyBase64"); + String plainText = context.getParameter("plainText"); + publicKey = Base64.getDecoder().decode(pubBase64); + plainData = plainText.getBytes(StandardCharsets.UTF_8); + } + + @Override + public SampleResult runTest(JavaSamplerContext context) { + SampleResult result = new SampleResult(); + // 调用待测函数 + String function = context.getParameter("function"); + + result.sampleStart(); // 开始计时 + try { + switch (function) { + case "SYD_SM2_Sign": + break; + default: + break; + } + + // result.setResponseData(encrypted); // 可选 + result.setSuccessful(true); + result.setResponseCodeOK(); + result.setResponseMessage( function + "执行成功" ); + } catch (Exception e) { + result.setSuccessful(false); + result.setResponseCode("500"); + result.setResponseMessage( function + "执行失败。" + e.getMessage()); + } finally { + result.sampleEnd(); // 结束计时 + } + return result; + } + + @Override + public void teardownTest(JavaSamplerContext context) { + // 释放资源(如有) + } +} \ No newline at end of file