JavaSampler编写
Jmeter进行性能测试的过程中,经常需要进行某些不同操作的,比如我经常用到的就是动态参数,此时可以通过新建一个java sampler。在sampler中进行处理。最终返回处理后的结果。
?
mvn archetype:create -DgroupId=com.alibaba.b2b.qa-DartifactId=jmeterSamplerExam
?
?
4、新建一个class集成自AbstractJavaSamplerClient(在添加完上面的两个jmeter包后)。命名为JmeterSamplerExam。
int count;// 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,类似于LoadRunner中的init方法public void setupTest(JavaSamplerContext arg0) {count = 0;}// 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中public Arguments getDefaultParameters() {Arguments arguments = new Arguments();arguments.addArgument("id", "10");arguments.addArgument("String", "initString");return arguments;}// 测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法 public SampleResult runTest(JavaSamplerContext context) { SampleResult results = new SampleResult(); results.sampleStart();// 计时开始 for (int i = 0; i < 10000000; i++) count++; results.sampleEnd();// 计时结束 results.setDataEncoding("UTF-8"); results.setResponseCode(count + "");// 结果返回 // results.setResponseCode(context.getParameter("id")); // 获取参数 results.setResponseMessage("responseMessage");// 结果返回2 results.setSuccessful(true); // 可用于返回是否处理成功 return results; }// 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,类似于LoadRunner中的end方法public void teardownTest(JavaSamplerContext arg0) {}
?参考自:
?在打开的select a wizard窗口中选择Java->Junit->Junit Test Case。
?在Test Methods窗口中选择待测试函数。最终生成测试代码。在生成的空函数中加入以下代码,进行调试。
?参考自:http://blog.csdn.net/shesunshine/archive/2010/08/20/5826798.aspx
<dependency><groupId>com.alibaba.external</groupId><artifactId>apache.jmeter</artifactId><version>2.3</version> </dependency>
?
7、调试成功后,注释掉测试代码,右击项目名Easy Shell > Open。打开cmd窗口。
添加一个线程组后添加一个java请求,如下图:

?箭头指向就是我们刚才自己写的类
红圈为程序中添加的参数名。
?
?正则的更多内容见:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><verbose>true</verbose><fork>true</fork><executable><!-- path-to-javac --></executable><compilerVersion>1.3</compilerVersion></configuration></plugin></plugins></build>
?
?
?