您的位置:首页 > 编程语言 > Java开发

iper工具使用指南02(jmeter的java接口篇)

2013-11-15 10:11 381 查看
前一篇我们介绍了http请求的jmeter脚本的创建,现在我们介绍下,如何写java的接口性能测试;

首先,在eclipse环境下创建一个java工程,然后加入你要压测系统的jar包,同时还需要将jmeter的测试基础包加进来:ApacheJMeter_java.jar和ApacheJMeter_core.jar,这两个jar包在jmeter工具的lib\ext下可以找到;为了方便调试,还会增加一些jmeter的日志包:jorphan.jar,logkit-2.0.jar,commons-logging-1.1.1.jar,avalon-framework-4.1.4.jar,这些jar包,都可以在Jmeter工具的lib下面找到;



添加好依赖的jar包后,我们就可以来编写接口测试的内容了;

在org.apache.jmeter.protocol.java.test下,创建要测试的class类;

package org.apache.jmeter.protocol.java.test;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

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 被压测接口;

public class mbis_affiliateLogin extends AbstractJavaSamplerClient {

private static String label = "affiliateLogin";//定义label名称,显示在jmeter的结果窗口

private Map variableMap=new HashMap();;

long trackId ;

long buyerId ;

Date lastVisit;

private AsynchronousCall asynchronuoscall;//定义要测试的hsf接口

public void setupTest(JavaSamplerContext arg0) {

//定义测试初始值,setupTest只在测试开始前使用

}

public Arguments getDefaultParameters() {

//参数定义,显示在前台,也可以不定义

Arguments params = new Arguments();

params.addArgument("trackId", "24321435345");

params.addArgument("buyerId", "2031166562");

return params;

}

@Override

public SampleResult runTest(JavaSamplerContext arg0) {

// TODO Auto-generated method stub

SampleResult sr;

sr = new SampleResult();

sr.setSampleLabel(label);

boolean success=true;

//填写压测时传入的参数

variableMap.put("trackId",24321435345L);

variableMap.put("buyerId",2031166562L);

variableMap.put("lastVisit",new Date());

//执行开始

sr.sampleStart();

try {

//调用被压测接口的方法

asynchronuoscall.affiliateLogin(variableMap);

} catch (Throwable e) {

success=false;

} finally {

//执行结束

sr.sampleEnd();

sr.setSuccessful(success);

}

return sr;

}

}

写完接口测试类后,需要调试,就可以创建个main函数来调试一下结果:

package org.apache.jmeter.protocol.java.test;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

public class maintest {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//把测试接口类new一个对象

mbis_affiliateLogin hsftest = new mbis_affiliateLogin();

JavaSamplerContext arg0 = new JavaSamplerContext(hsftest

.getDefaultParameters());

//初始值执行

hsftest.setupTest(arg0);

//执行部分调用

hsftest.runTest(arg0);

//执行结束处理

hsftest.teardownTest(arg0);

}

}

调试成功后,就可以来打测试jar包了,两种打包方式:

1.先把ApacheJMeter_java.jar解压,然后把创建的工程中,bin下面的class文件拷贝出来,拷贝到ApacheJMeter_java.jar的“org.apache.jmeter.protocol.java.test”下面

打开电脑的开始->运行,输入cmd,打开dos命令行,进入jmeter的ApacheJMeter_java所在目录中,执行打包命令,jar cf ApacheJMeter_java.jar org,这个就能重新打包一个ApacheJMeter_java.jar包了,然后把自己本地jmeter的lib/ext下的jar包给替换掉;

2.直接把测试类在eclipse下Export打成jar包,然后拷贝到jmeter的lib/ext下面,这个方法最简单,推荐使用;

打包结束后,还需要把被压测系统的jar包以及所需的依赖放入到jmeter工具的lib下面,这样才能调用到;

好了,现在再打开jmeter工具,添加线程组->事务控制器->java请求,这时候类名称里面,就可以看到你刚才工程中创建的类名了;

这样,java接口压测的脚本就创建成功啦~~~

很多时候,我们不单单需要java接口测试,有一些hsf的接口需要测试,这时候我们需要在测试类中添加hsfunit的东西,添加bean了

在setupTest之前,可以添加hsfstart的内容:

static {

//hsf启动版本

HSFEasyStarter.start("D:\\project", "1.4.8.7");

System.out.println("hsf start: ----------------");

try {

//sleep2s,等待地址推送

Thread.sleep(2000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

另外,在setupTest的里面,添加getbean的内容:

//配置getbean的xml地址

String[] locations = { "D:\\project\\works\\mbis_hsf_test\\src\\mbis_beans.xml" };

ApplicationContext context = new FileSystemXmlApplicationContext(locations);

//getbean的内容填写

registerService = (RegisterService) context.getBean("registerService");

在相应的地方,把bean文件填写了就可以了(可以参考下hsf单元测试的编写内容),同时不要忘记把用到的如spring、hsfunit的jar包也放入到jmeter的lib下就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: