添加一个性能测试模板

This commit is contained in:
cheney 2026-05-29 17:18:36 +08:00
parent 799f3763d1
commit 31f8c9155e

View File

@ -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) {
// 释放资源如有
}
}