新项目用jmeter做性能测试,导入别人写好的jar包,发现有if控制器和java请求,可是我看不懂这个脚本到底在干嘛,只好自己摸索。
java请求要自己写一个runable的jar包,继承jmeter的AbstractJavaSamplerContext类,然后改写runtest方法。具体代码如下。
步骤如下:
1. 打开eclipse,把代码写好,并export为runnable jar file (切记,jar file在jmeter里是找不到的)
默认导入代码会找不到命名空间,记得要在属性->build path里把jmeter的lib里的jar都导入,如下图
2. 把jar文件放到jmeter里的 lib\ext里,重启jmeter,添加线程组-> java请求 ->添加查看结果树。
就能看到执行结果了。
但是if控制器我还没设成功,等我找到原因再继续更新。
package jmeter_sample; 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 PerformanceTest extends AbstractJavaSamplerClient { private static long start = 0; private static long end =0; private String a,b, result; public void setupTest(JavaSamplerContext arg0) { start = System.currentTimeMillis(); } public void teardownTest(JavaSamplerContext arg0) { end = System.currentTimeMillis(); System.err.println("cost time" + (end-start)/1000); } public Arguments getDefaultParameters() { Arguments args = new Arguments(); args.addArgument("num1",""); args.addArgument("num2",""); return args; } private static int sum(int a, int b) {return a+b;} public SampleResult runTest(JavaSamplerContext arg0) { SampleResult sr = new SampleResult(); a = arg0.getParameter("num1"); b = arg0.getParameter("num2"); sr.setSampleLabel("hui"); try { sr.sampleStart(); result = String.valueOf( sum(Integer.parseInt(a),Integer.parseInt(b))); if(result !=null &&result.length()>0) { sr.setResponseData("结果是 "+result,null); sr.setDataType(SampleResult.TEXT); } sr.setSuccessful(true); sr.sampleEnd(); } catch(Exception e) { e.printStackTrace();} return sr; } public static void main(String[] args) { System.out.print("hello"); } }
时间: 2024-10-29 01:11:28