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; public class JmeterTest extends AbstractJavaSamplerClient { private byte[] publicKey; private byte[] plainData; private int sleep = 1; @Override public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("function", "sleep"); params.addArgument("sleep", "1"); return params; } @Override public void setupTest(JavaSamplerContext context) { // 校准测试 sleep = context.getIntParameter("sleep", 1); // 线程开始时准备解密、验签数据 String function = context.getParameter("function"); switch (function) { case "SYD_SM2_Sign": break; default: break; } } @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; case "sleep": Thread.sleep( this.sleep ); 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) { // 释放资源(如有) } }