使用jmeter进行压测java接口(dubbo)

195056_idAk_2931315.png

将工程打成jar包之后,会有一些外部依赖资源需要手动添加进jmeter的class path中,比如如图etc和libs两个文件夹下引用的file或jar,另外如果是maven项目,所有pom中依赖的私服jar包,需要在本地全部单独建一个文件夹存放,并添加进class path,如下图:

195204_6CwF_2931315.png

jar包在此添加

195454_TXWe_2931315.png

etc下的file,直接手动放至jmeter安装路径的bin下:

195655_77EN_2931315.png

2、

修改jmeter初始化内存

windows环境下,修改jmeter.bat

1383

根据经验,heap最多设置为物理内存的一半,默认设置为512M.如果heap超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出,原因java比较吃内存,占CPU.

注意:JDK32位的电脑Xmx不能超过1500m,最大1378m.否则在启动Jmeter时会报错

 

linux环境下,修改jmeter.sh:

java $JVM_ARGS -Xms1G -Xmx5G -XX:MaxPermSize=512m -Dapple.laf.useScreenMenuBar=true -jar `dirname $0`/ApacheJMeter.jar "$@"

 

二、白盒测试代码编写

1、白盒编写所需jar

1391

红色所标识的,是编写与在jmeter上运行白盒测试代码必须的jar包,因为会引用到相关几个关键类;

黄色部分,是在你想直接在eclipse上,对白盒测试代码添加main方法进行单元调试时,所需的,但不是必须,也可以将整个工程打成jar包后放至jmeter中调试,当然,那样比较麻烦。

2、白盒测试代码编写规范

1393

红色所标识的即为开发源码,在其路径下新建一个测试类,即黄色所标识,即为我们的白盒测试代码类

测试代码共分几部分:

(1)继承AbstractJavaSamplerClient类

1397

(2)定义全局变量

195815_N8xU_2931315.png

(3)重写AbstractJavaSamplerClient四个方法

getDefaultParameters

1402

setupTest

195939_D6FZ_2931315.png

runTest

1408

注:网上的教程都是在runTest中先实例化本类,如图

CTVCTest commonTVConsumer = new CTVCTest();

然后再由commonTVConsumer去调用被测接口,如:

List<PopularProgram> result = commonTVConsumer.tvDataService.getHotProgram(a, g, Integer.parseInt(h));

但注意,CTVCTest.java中的tvDataService是经过在setupTest中赋值了的,

tvDataService = (TVDataService) context.getBean("tvDataService");

但如果在runTest中又new一个CTVCTest.java的实例,再去commonTVConsumer.tvDataService,调用的又变成在全局变量中刚刚定义的未赋值的变量了:

public TVDataService tvDataService = null;

所以此时一定会报空指针。所以,这里尤为需要注意线程与实例保持统一!所以如上图,这里干脆直接使用赋值后的tvDataService:

tvDataService.getHotProgram(a, g, Integer.parseInt(h));

----------------------------

teardownTest

1419

main(自己单元调试,非必需,打jar包时最好注释掉)

1421

这里可以清晰的看到jmeter在单线程里的调用流程,所以在runTest中其实不能再去实例化一次,或者也没必要实例化后再调一次setupTest等,保持在一个线程与实例下调用的是同一个变量就行!

 

 

转载于:https://my.oschina.net/changeClown/blog/757092

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值