如何在jmeter 调用java方法中调用自己写的java工具包

博客分类:
看了两篇关于如何用JMeter进行HTTP请求及数据库方面做性能测试的文章(如下两个链接),感受到这款工具的强大和易用。我在这里延续一下,对另一种常用的测试类型"Java请求",做个入门级的介绍。
"Java请求"测试是指通过JMeter工具对Java Class进行压力测试。JMeter可设定测试时的并发线程数、循环次数或测试时长等,模拟出巨大的负载后便可观察在不同压力下程序的强度和分析出整体性能。
一.启动JMeter
http://jmeter.apache.org/download_jmeter.cgi
Linux环境下运行 $安装目录/bin/jmeter.sh
Windows下运行 $安装目录/bin/jmeter.bat
二.编写用例
针对"Java请求"类型的测试,需要基于JMeter测试框架编写用例。
1、新建一个普通的Java工程;
2、将 $JMeter安装目录/lib/ 目录引入工程;
3、新建Java Class,如下的"PerformanceTest ",并继承"AbstractJavaSamplerClient";
代码示例:
import org.apache.jmeter.config.A
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerC
import org.apache.jmeter.protocol.java.sampler.JavaSamplerC
import org.apache.jmeter.samplers.SampleR
* @author xuanyin
public class PerformanceTest extends AbstractJavaSamplerClient {
private static long start = 0;
private static long end = 0;
* 执行runTest()方法前会调用此方法,可放一些初始化代码
public void setupTest(JavaSamplerContext arg0) {
// 开始时间
start = System.currentTimeMillis();
* 执行runTest()方法后会调用此方法.
public void teardownTest(JavaSamplerContext arg0) {
// 结束时间
end = System.currentTimeMillis();
// 总体耗时
System.err.println("cost time:" + (end - start) / 1000);
* JMeter界面中可手工输入参数,代码里面通过此方法获取
public Arguments getDefaultParameters() {
Arguments args = new Arguments();
* JMeter测试用例入口
public SampleResult runTest(JavaSamplerContext arg0) {
SampleResult sr = new SampleResult();
sr.sampleStart();
* Start~End内的代码会被JMeter
* 纳入计算吞吐量的范围内,为了使
* 性能结果合理,无关代码不必放此
* True/False可按测试逻辑传值
* JMeter会对失败次数做出统计
sr.setSuccessful(true);
sr.sampleEnd();
} catch (Exception e) {
e.printStackTrace();
4、导出成Jar并置于 $JMeter安装目录/lib/ext/ 下,若有依赖Jar也置于 $JMeter安装目录/lib/ 下;
5、启动或重启JMeter。
三、运行用例
1、主界面左侧“测试计划”,右键菜单-&添加-&Threads(Users)-&线程组;
2、再选中刚才新增的"线程组",右键菜单-&添加-&Sampler-&Java请求;
3、再选中刚才新增的"Java请求",右键菜单-&添加-&监视器-&聚合报告;
4、选择想测试的类名,并在"线程组"选项中输入循环次数及并发线程数;
5、点击菜单栏上"运行"-&启动后便开始运行,在"聚合报告"查看结果数据。
若在"Java请求"选项中未找到测试用例类名: 则请先确认用例是否继承了JMeter框架的基类; 其次保证用例Jar文件在 $安装目录/lib/ext/ 下; 尝试重启JMeter。
如有使用问题,欢迎一起探讨。
养成给代码做性能对比的习惯,是一名合格程序员基本的素质。
浏览 24087
浏览: 97221 次
来自: 杭州
要实现枚举值与数据库表值字段之间的顺利转换,还有一种变通方法。 ...
代码:
ObjectMapper mapper = new O ...
请问ObjectMapper的writevalue方法是线程安 ...
JSON转POJO时,若JSON中的某个字段在POJO中未定义 ...
楼主这篇文章非常不错哦,正在选择一个json-lib,有数据有 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'2940人阅读
性能测试(21)
感觉在Jmeter中使用外部的java文件比较方便,语法一样,而且可以直接引用,所以个人觉得这个功能还是蛮重要的,特别是在使用Jmeter的过程中,可能需要结合一定的业务场景进行判断等,那使用Jmeter带有的函数可能并不能够满足自己的测试需求,在这时候,使用自己编写的函数就可以很好的满足自己的需求。
一、可以直接使用直接编写java文件或者class文件,之前已经有一篇博文,,这里满有三种方法可以使用java文件,其中后两种是引入外部的java文件,第一种是直接在jmeter中编写函数。
二、除了上述几种方法之外,还有一种是将java文件转化为jar文件,在jmeter中直接调用,我觉得这种方法应该是最方便的,把jar包存在在一个目录中,配置路径,然后就可以像在Eclipse中一样进行调用了,下面将详细讲解如何在Jmeter中使用外部的jar文件。
1.首先将java文件生成jar文件,生成方法在上一篇博文有详细解述,博文url:
2.在jmeter目录下新建一个文件,自己随便命名文件夹名称,这里是dependencies,然后将已经生成好的jar包放在这个目录下,这里的jar包文件名称是com.test.Math.SqrtCalc.jar(上一篇博文中生成的jar包,功能就是有一个sqrt函数,求平方值,比较简单,详细内容) ,如下图:
3.然后打开bin目录文件夹下的jmeter.properties文件,介意使用ctrl+f查找plugin_dependency_paths 这个属性,然后设置为
plugin_dependency_paths=../ ,如下图:
4.下面就开始在Jmeter中调用这个函数了,首先打开Jmeter,新建一个测试计划,在这个测试计划中新建一个线程组,然后线程组下新建一个BeanShell Sampler,只需要再BeanShell Sampler下面的Script框中写入代码,不用其他配置,这里代码文件是:
import com.test.Math.*
String ret = SqrtCalc.sqrt("4.0")
log.info("Value=" + ret)
//将jar包地址使用import,就成了上面的代码
//String ret = com.test.Math.SqrtCalc.sqrt("4.0")
//log.info("Value=" + ret)
为了查看结果方便,这里打开“选项 –& Log Viewer”,如下图:
5.点击运行,在log中可以查看相应的结果,
这里只是一个比较简单的jar包的引入和函数的调用,深一点的知识本人也在学习中…..
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:226009次
积分:3926
积分:3926
排名:第8604名
原创:158篇
转载:42篇
评论:49条
(2)(3)(2)(16)(4)(35)(27)(6)(9)(44)(52)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'用户名:kongyang86
文章数:11
访问量:6169
注册日期:
阅读量:1297
阅读量:3317
阅读量:582263
阅读量:466949
51CTO推荐博文
&1.java请求后加正则表达提取器
2. java请求后增加后置beanshell
&本文出自 “” 博客,请务必保留此出处
了这篇文章
附件下载:  
类别:未分类┆阅读(0)┆评论(0)
请输入验证码:

我要回帖

更多关于 java 调用 jmeter api 的文章

 

随机推荐