Jmeter之Java接口调用

时间:2024-03-01 12:38:53

通常用jmeter做http请求(或者其他类型)测试时,有时需要对请求的数据(或者响应的数据)进行特定的处理再进行请求,如加密、解密,需自己用java编写一些工具类;或者需要对Java接口服务进行性能测试时,需要用到jmeter进行Java接口调用。以下简单介绍下jmeter通过Java请求和Bean shell方式来实现Java接口调用的具体使用方法。

 

一、jmeter中BeanShell Sampler调用java接口有3种方式

 

1.引用外部java文件

1)编写一个java 源文件,名为:testFun.java,代码如下:

 

2)Bean Shell使用代码如下:

在bean shel中通过source("代码路径")方法引入java,然后调用方法和java一样,new一个class,再调用里面的towerCase方法

 

2.     引用外部class文件

1)直接把上例中的java文件编译成class文件,javac java文件。

 

2)BeanShell使用代码如下:

 用addClassPath("class文件所在路径")方法引入 class文件,在用import导入包及类,就可以像java一样调用了;

 

3.     引用外部Jar包

如果文件比较多时我们可以把它们打成一个jar包然后在jemter中调用,如下:

 

1)jmeter中引入jar

把jar包放到jmeter目录\apache-jmeter-2.13\lib\ext下,然后在jmeter中Test Plan的右侧面板最下方直接添加需要引用的jar包,如下图:

 

2)在用import导入包及类,直接调用方法:

 

二、jmeter的Java请求具体使用

1.创建一个Java项目:uapTest

 

2.     将Jmeter安装目录ext下的ApacheJMeter_core.jar和ApacheJMeter_java.jar两个jar包复制到测试项目的lib目录下,这两个包是编写java请求测试代码必须的。并将引用的jar包都添加到项目的Build Path中。

 

3.     创建一个GetAuthByAppIdUserId.java类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient并重写,主要有以下几个方法:

 

publicArguments getDefaultParameters();设置可用参数及的默认值;

 

public voidsetupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;

 

publicSampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;

 

public void teardownTest(JavaSamplerContextarg0):测试结束时调用;

 

其中,画红框部分是测试代码主体,sampleStart和sampleEnd方法调用时会分别生成一个时间戳,两个时间戳之差就是一次java请求的响应时间,单位是ms。

 

注意:如果需要对多个方法进行测试,则需要建多个测试类,多个测试类可以放在同一个包下面,也可以放在单独的包中。

 

4.将项目打成jar包,为uapTest.jar,注意使用Export为Runnable Jar File,会导出相关依赖包,并有包依赖关系文件;

 

5.将导出jar包以及依赖相关依赖jar放入JMETER_HOME\lib\ext目录;

 

6.打开jmeter创建线程组、添加Sampler--Java请求、查看结果树,进行测试;