本文描述jmeter如何发送java请求
1.编写java请求,将加密、签名等封装,对外只暴露需要传的业务参数,jemter发送java请求时直接传入业务参数即可
添加依赖:
1 2 3 4 5 | <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version> 5.4 </version> </dependency> |
具体代码如下:
import com.alibaba.fastjson.JSONObject; 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.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Map; public class taxfilling_detail extends AbstractJavaSamplerClient { private String assetCode; private String bankSafeCode; private String privateKey; private String service; private String method; @Override public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("assetCode",""); params.addArgument("bankSafeCode", "xx"); params.addArgument("privateKey", "xx"); params.addArgument("service", "xx"); params.addArgument("method", xxEnum.xx.getMethod()); return params; } @Override public void setupTest(JavaSamplerContext arg0) { assetCode = arg0.getParameter("assetCode"); bankSafeCode = arg0.getParameter("bankSafeCode"); privateKey = arg0.getParameter("privateKey"); service = arg0.getParameter("service"); method = arg0.getParameter("method"); } @Override public void teardownTest(JavaSamplerContext arg0) { } @Override public SampleResult runTest(JavaSamplerContext arg0) { SampleResult sr = new SampleResult(); try { sr.sampleStart(); sr.setSamplerData(detail().toString()); sr.setResponseData(send_detail().toString(), ""); sr.setDataType(SampleResult.TEXT); sr.setSuccessful(true); } catch (Throwable e) { sr.setSuccessful(false); e.printStackTrace(); }finally { sr.sampleEnd(); } return sr; } // 业务请求参数组装 public JSONObject detail(){ JSONObject reqContent = new JSONObject(); reqContent.put("taxPaymentCode", assetCode); return reqContent; } // 发送业务请求 public JSONObject send_detail() throws NoSuchAlgorithmException, InvalidKeyException { JSONObject content = detail(); Map<String,String> reqObj = GetRequestDataMap.getRequestDataMap(method,content.toString(),bankSafeCode,privateKey,service); content = GetRequestDataMap.service(reqObj); return content; } }
2.mvn install 生成jar包
3.将jar包放/.../jmeter/lib/ext/下
4.打开jmeter,新建一个线程组,线程组下增加"java sample"后,可以看到jar包中的测试类,点击选择一个测试类,下方为请求中的具体参数
填写参数后发起请求
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通