JMeter的线程和报表,扩展“Java请求”

Sample

    这里我用到主要JMeter的线程和报表,扩展了他的“Java请求”这个应用类别。要扩展此应用,要用到lib/ext/ApacheJMeter_java.jar,他封装此应用。

    首先,需要继承ApacheJMeter_java.jar中的抽象类AbstractJavaSamplerClient,它提供了四个抽象方法: void setupTest(JavaSamplerContext arg0),SampleResult runTest(JavaSamplerContext arg0), void teardownTest(JavaSamplerContext arg0), Arguments getDefaultParameters()。setupTest和teardownTest与JUnit中的类似,分别在测试的开始和结束时执行。 runTest为主要测试方法,所有测试程序都在这里完成,JavaSamplerContext参数封装测试中需要的所有外界数据(如配置信息等)。其 SampleResult封装了所有测试结果(如:测试是否成功?程序执行时间等),getDefaultParameters用于把测试的一些默认数据在程序运行前显示到JMeter客户端,这个可以和runTest配合使用,实现数据的呈现和配置。

    下面为程序:

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 com.ebupt.wv.client.WVClient;

public class Login2 extends AbstractJavaSamplerClient {


private static String label = "userLogin"
private String name;
private String address;


public void setupTest(JavaSamplerContext arg0) {
     System.out.println("setupTest");
}

public SampleResult runTest(JavaSamplerContext arg0) {
     name = arg0.getParameter("name");
     address = arg0.getParameter("address");
     SampleResult sr;
     sr = new SampleResult();
     sr.setSampleLabel(label);
     try{
           sr.sampleStart();  //记录程序执行时间,以及执行结果
           sr.setSuccessful(true);
           System.out.println("send over!");
     }catch(Throwable e){
          sr.setSuccessful(false);
     }finally{
          sr.sampleEnd();
     }
     return sr;
}

public void teardownTest(JavaSamplerContext arg0) {
}

public Arguments getDefaultParameters() {
     Arguments params = new Arguments();
     params.addArgument("name", "JMeter");
     params.addArgument("address", "localhost");
     return params;
}

}

    其次,把写好的应用打包,放到lib/ext下,JMeter运行时即可找到。同时还要把用户自己编写的应用所依赖的包放在lib下。运行JMeter。界面打开后,右键“测试计划”,添加线程组;右键“线程组”-添加-Sampler-Java请求,在类名称处选择刚才写好的类。
如图:
 


    这里,可以同时添加多个线程组、多个java请求、同时可以添加监听器用于输出不同的的测试结果图形、报表,各个请求之间可以用逻辑控制器进行执行流程的控制。如图:
 

    最后,点击运行-启动,保存相应的项目,即可开始运行。运行时的数据,可以通过监听器写入文件以便需要时生成报表。

    ant使用

    在运行JMeter项目前,会让用户保存项目,保存为.jmx文件,把此文件放到extras目录下,即可使用ant实现测试的自动化。ant有以下几个命令:
ant -Dtest=项目名称    运行项目并生成报表。
ant -Dtest=项目名称 run    只运行项目。
ant -Dtest=项目名称 report  只生成报表(这个需要把测试时记录下来的.jtl文件放到ant目录下)

    报表如下:

posted @ 2015-01-21 19:41  scarlett1798  阅读(334)  评论(0编辑  收藏  举报