Jmeter之Java接口调用

通常用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请求、查看结果树,进行测试;

 

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter可以通过Java请求来调用Java接口。以下是一个简单的示例代码: ```java import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.protocol.java.sampler.JavaSamplerSampler; import org.apache.jmeter.samplers.SampleResult; public class MyJavaSampler extends JavaSamplerSampler { @Override public Arguments getDefaultParameters() { Arguments arguments = new Arguments(); arguments.addArgument("param1", "default_value1"); arguments.addArgument("param2", "default_value2"); return arguments; } @Override public SampleResult runTest(JavaSamplerContext context) { SampleResult result = new SampleResult(); result.sampleStart(); try { // Get parameters from context String param1 = context.getParameter("param1"); String param2 = context.getParameter("param2"); // Call Java interface MyJavaInterface myInterface = new MyJavaInterface(); String response = myInterface.call(param1, param2); // Set response data and status result.setResponseData(response, null); result.setResponseCodeOK(); result.setSuccessful(true); } catch (Exception e) { // Set error message and status result.setResponseMessage(e.getMessage()); result.setSuccessful(false); } result.sampleEnd(); return result; } } ``` 在这个示例中,我们创建了一个 `JavaSamplerSampler` 的子类 `MyJavaSampler`,并实现了 `getDefaultParameters` 和 `runTest` 方法。`getDefaultParameters` 方法返回默认的参数值,`runTest` 方法执行测试逻辑。 在 `runTest` 方法中,我们从 `JavaSamplerContext` 中获取参数,并调用一个名为 `MyJavaInterface` 的Java接口接口调用逻辑可以根据自己的需求进行修改。 要在JMeter中使用这个Java请求,需要将编译后的类文件添加到JMeter的classpath中,并在测试计划中添加一个 Java请求。在Java请求配置中,选择 `MyJavaSampler` 作为类名,并设置参数值。运行测试计划时,JMeter将使用Java请求调用Java接口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值