JMeter性能测试初识

   刚接触JMeter,看完JMeter的介绍后,觉得JMeter真的很强大,很佩服apache开源组织的人,一值能推出这么好用的东西,下面就开始做了第一个例子,看看怎么使用JMeter。

  首先,做一个模拟一个http,在测试计划下需要添加一个线程组,用来多线程并发请求http服务,然后在测试计划下添加一个默认的request的连接,然后在线程组下添加一个sample,类型是http请求,最后在测试计划下添加一个监听,类型可以是表格或其他,各配置项一看就明白;接下去运行就可以了;

  然后尝试下Java 请求的性能测试,这个也是会比较常用的功能,首先随便建个java工程,建一个测试类,测试类需要先继承AbstractJavaSamplerClient类,这个类似于junit的TestCase,是任何javaSampler的基类,类似代码如下:

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 src.proxydemo.ISayHello;
import src.proxydemo.LoggerHandler;
import src.proxydemo.SayHelloImpl;

/**
 * @author xiaofeng.zhouxf
 * @mail: [email protected]
 * 
 * @date 2010-9-2
 */
public class Test extends AbstractJavaSamplerClient {

	/** 
     *  
     */
	private static long start = 0;
	private static long end = 0;

	/**
	 * 执行runTest()方法前会调用此方法,可放一些初始化代码
	 */
	public void setupTest(JavaSamplerContext arg0) {

		// 开始时间
		start = System.currentTimeMillis();
	 System.err.println(" ======begin======");
	}

	/**
	 * 执行runTest()方法后会调用此方法.
	 */
	public void teardownTest(JavaSamplerContext arg0) {

		// 结束时间
		end = System.currentTimeMillis();

		// 总体耗时
		System.err.println("cost time:" + (end - start) / 1000);
		System.err.println(" =====end======= ");
	}

	/**
	 * JMeter界面中可手工输入参数,代码里面通过此方法获取
	 */
	public Arguments getDefaultParameters() {

		Arguments args = new Arguments();
		args.addArgument("test", "123");
		return args;
	}

	/**
	 * JMeter测试用例入口
	 */
	public SampleResult runTest(JavaSamplerContext arg0) {

		SampleResult sr = new SampleResult();
		String test = arg0.getParameter("test");
		System.err.println("test value:" + test);
		try {
			// Start
			sr.sampleStart();

			/**
			 * Start~End内的代码会被JMeter 纳入计算吞吐量的范围内,为了使 性能结果合理,无关代码不必放此
			 */

                        //======这里开始写你要测试的代码======>> 
			SayHelloImpl sayHello = new SayHelloImpl();
			LoggerHandler proxy = new LoggerHandler();
			ISayHello isayhello = (ISayHello) proxy.bind(sayHello);
			isayhello.sayHello();
                        		

			sr.setDataEncoding("UTF-8");
			sr.setResponseCode("testStr:" + test);
			 

                         /**
			 * True/False可按测试逻辑传值 JMeter会对失败次数做出统计
                         * 根据你的代码执行结构设置即可
			 */
			sr.setSuccessful(true);
                        //<<========================

			// End
			sr.sampleEnd();

		} catch (Exception e) {

			e.printStackTrace();
		}

		return sr;
	}

	public static void main(String[] args) {

	}
}


代码写完之后,把工程打包成jar,放到JMeter的lib/ext目录下,以及你需要测试性能的代码,也需要打包成jar,放到这里;
最后启动JMeter,跟上面类似,添加线程组,线程组下添加sampler,类型是java请求,建完后可以在右边类名称的下拉框中看到你刚写可以看到性能报告啦;
   暂时只是使用,下次看看他的实现再说~

你可能感兴趣的:(apache,多线程,ext,JUnit)