Jmete中的Java Reuest的使用方式

上一篇 / 下一篇  2010-01-24 16:53:58 / 个人分类:JMeter

   使用Jmete中的Java Reuest,可以对编写的java类或者方法进行测试Jmeter没有自带编译器,需要借助第三方编译器才能实现,因此使用Java编译器编写测试代码,将测试代码和需要测试的类都放入Jmeterlib文件夹下,然后再Jmeter中添加Java Reuest,就可以进行相应的测试了,下面结合一个实际的例子说明了如何使用Java Reuest

 

1.    打开Java编译器,新建一个项目"JavaRequest",然后新建一个包"Jmeter.JavaRequest".

2.       "JavaRequest"项目中,引入ApacheJMeter_core.jar""ApacheJMeter_java.jar这两个JAR文件.(具体的引入方法参考各个Java编译器的使用方法)

3.        "Jmeter.JavaRequest"包中新建一个类,名字叫"TestJmeterRequest",这个类要继承"AbstractJavaSamplerClient",如果项目引入步骤二中的两个文件,就可以找到"AbstractJavaSamplerClient"类了.

4.      "TestJmeterRequest"类在继承"AbstractJavaSamplerClient"类的同时也会继承四个方法,分别是"getDefaultParameters","setupTest","runTest""teardownTest"方法."getDefaultParameters"方法主要用于设置传入的参数;"setupTest"方法为初始化方法,用于初始化性能测试时的每个线程."runTest"方法为性能测试时的线程运行体;"teardownTest"方法为测试结束方法,用于结束性能测试中的每个线程.

5.      具体实现代码如下:

package Jmeter.JavaRequest;

 

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 DataBase extends AbstractJavaSamplerClient {

 private static String label = "databaseTest";

 private String sql1;

 private String sql2;

   private SampleResult results;

   private String testStr;

   

 public void setupTest(JavaSamplerContext arg0)

 {

       System.out.println("setupTest");

       results = new SampleResult();

       testStr = arg0.getParameter("testString", "");

       if (testStr != null && testStr.length() > 0) {

              results.setSamplerData(testStr);

       }

 }

 

 public SampleResult runTest(JavaSamplerContext arg0)

 

 {

       sql1 = arg0.getParameter("host");

 

       sql2 = arg0.getParameter("port");

 

       SampleResult sr;

 

       sr = new SampleResult();

 

       sr.setSampleLabel(label);

 

       try

 

       { //这里调用我们要测试的java类,这里我调用的是一个DatabaseTest

 

            DatabaseTest datatest=new DatabaseTest();;

            //datatest.main(null);//调用要测试的方法

            datatest.initialConnection();

 

            sr.sampleStart(); //记录程序执行时间,以及执行结果

 

            sr.setSuccessful(true);

 

            System.out.println("send over!");

 

       } catch (Throwable e)

 

       {

            System.out.println("Exception is " + e.getMessage());

 

            sr.setSuccessful(false);

 

       } finally

 

       {

            sr.sampleEnd();

       }

 

       return sr;

 }

 

 public void teardownTest(JavaSamplerContext arg0)

 

 {

 }

 

 public Arguments getDefaultParameters()

 

 {

       Arguments params = new Arguments();

        params.addArgument("sql1", "");

        params.addArgument("sql2", "");

       return params;

 

 }

 

}

6.    把上面的例子打包,然后把生成的"TestJavaRequest.jar"文件拷贝到Jmeter的安装目录lib\ext.

7.      运行Jmeter,添加一个线程组,然后在该线程组下面添加一个Java请求(Sampler),Java请求的类名称中选择刚创建的类"Jmeter.JavaRequest. TestJavaRequest ",然后添加一个监听器(聚合报告),设置一下模拟的用户数就可以测试了.如果测试不成功,Jmeter会在它自己个输出框中抛出这个字符串.
      
使用Jmeter自定义Java测试代码,配合Jmeter自带的函数,就可以实现出LoadRunner"Java Vuser"协议的绝大多数功能.


TAG: JMeter Jmeter Java测试代码 JavaRequest

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)