jmeter 压测duobbo接口,施压客户端自己把自己压死了
jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化。导致越压越慢,请求发不出去。这个时候需要考虑修改代码了。

截图中,tps越来越少。
原来初始化的代码放在
runTest中执行。
修改后放在
setupTest方法中运行,只运行一次。解决实例化消耗内存问题。
import com.alibaba.fastjson.JSONObject;
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 org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.Date; public class TestMsgTemplate extends AbstractJavaSamplerClient { private static TemplateMsgFacade templateMsgFacade; @Override
public void setupTest(JavaSamplerContext arg0) {
if (TestMsgTemplate.templateMsgFacade == null) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:app-dubbo-client-context.xml");
TestMsgTemplate.templateMsgFacade = (TemplateMsgFacade) context.getBean("templateMsgFacade");
}
} @Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("templateCode", "");
return params;
} @Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) { String templateCode = javaSamplerContext.getParameter("templateCode");
SampleResult sr = new SampleResult();
sr.setSampleLabel("MsgTemplate:消息模板");
sr.sampleStart();
TemplateMsgDto dto = new TemplateMsgDto();
dto.setTemplateCode(templateCode);
dto.setMobile("");
dto.setPointCode("FC7555535");
TemplateMsg msg = templateMsgFacade.getMsgTemplate(dto); String abc = JSONObject.toJSONString(msg);
msg = null;
if(abc.contains("templateSource")){
//sr.setResponseData("templateSource 成功"+ templateCode, null);
sr.setResponseData(templateCode+"成功", null);
sr.setDataType("text");
sr.setSuccessful(true);
sr.setResponseCodeOK();
}else{
// sr.setResponseData("templateSource 失败"+ templateCode, null);
sr.setResponseData(templateCode+"失败", null);
sr.setDataType("text");
sr.setSuccessful(false);
sr.setResponseCode("");
} sr.sampleEnd();
// abc = null;
return sr;
} /**
* @param args
*/
public static void main(String[] args){
for(int i = ;i <;i ++){ System.out.println(i);
Date nowTime = new Date();
System.out.println(nowTime);//方法二:Date方式,输出现在时间
Arguments params = new Arguments(); params.addArgument("templateCode", "hibox.noticeStaffAgainPost_ZH_CN"); JavaSamplerContext arg0 = new JavaSamplerContext(params);
TestMsgTemplate qap = new TestMsgTemplate();
qap.setupTest(arg0);
qap.runTest(arg0);
qap.teardownTest(arg0);
} }
}
重新运行压测代码j结果,tps 明显提高很多:

jmeter 压测duobbo接口,施压客户端自己把自己压死了的更多相关文章
- JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!
JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是t ...
- 图解jmeter压测http接口
此次压力测试是以一个http json的后台接口为例. 1. 创建相应的部件 2. 设置相应的参数 线程组主要用于设置一共要测试的线程数量(上图1000),每秒起的线程数(上图10),几秒内启动完单循 ...
- Jmeter实现dubbo接口压测案例
当前项目中重构了消息服务,需要对消息服务接口做性能压测,评估消息服务的性能情况 通过和开发对接,目前消息服务是通过dubbo接口对内提供服务,所以才有了这边文章的记录 最初的压测这个dubbo接口有三 ...
- 实战jmeter入门压测接口性能
什么是Jmeter? 是Apache组织开发的基于Java的压力测试工具. 准备工作: 一.安装配置好环境及压测工具 Jmeter下载地址:http://mirrors.tuna.tsinghua.e ...
- jmeter压测学习8-压测带token的接口
前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口. 比如我现在要压测一个修改用户的个人信息接口,每个用 ...
- 5. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 接口以及场景压测
目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...
- JMeter分布式压测实战(2020年清明假期学习笔记)
一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口 ...
- Jmeter安装与使用(压测)
一.介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件,Java Se ...
- Dubbo接口压测
在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力. 一.准备工作 环境准备:确保应用性能环境(perf)正常可用 压测接口梳 ...
随机推荐
- NameNode重新格式化以后DataNode不能启动
最近重新格式化NameNode以后,发现几个DataNode都不能启动了. 这是因为dfs.name.dir路径下面有一个current/VERSION文件,里面有一个clusterID,重新格式化以 ...
- Customize Web Sessions List
To customize Fiddler's Web Sessions List, add rules using FiddlerScript to the OnBeforeRequest funct ...
- lambda expressions are not supported at this language level
IDEA下报错:lambda expressions are not supported at this language level 解决: 1. File -> Project Struct ...
- [转]什么是 RPC?
知乎上看到的一个解释,解释的太精炼太直接,忍不住在这记录一下. 知乎地址:https://www.zhihu.com/question/25536695 本地过程调用 RPC就是要像调用本地的函数一样 ...
- 转-ubuntu清理卸载wine的残余项目
背景:前段时间,装了wine试用了一下,感觉实在没啥意思就卸载了.但是卸载以后发现还有些尾巴碍眼,如打开文件时右键菜单里就会有“使用notepad打开”的选项,虽然没有什么别的问题,但是看着碍眼.所以 ...
- Android学习笔记三:用Intent串联activity
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7513399.html 一:Intent Intent可以理解为 意图. 我们可以通过创建intent实例来定义 ...
- Linux使用笔记
1:Ubuntu系统获取超级权限: 在终端输入:sudo passwd,重置uinx密码.然后输入 su ,输入密码,即可进入root权限. 2:更改文件属性 Linux文件的基本权限有九个,分别是o ...
- spiral-matrix-ii &i 生成顺时针序列
I: Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral ...
- Oracle11g口令过期的解决
今天发现服务器上的Oracle11g突然登录不上去了,提示ORA-28002错误,说是口令过期. 1. 用DBA账户登录SQL PLUS.我用的是SYS. 2. 系统会提示口令失效,但是会马上让你重置 ...
- 〖Android〗超级终端/sdcard/local_profile备份
# mode set -o vi # env workpc=work@11.11.137.171 mepc=me@11.11.137.172 passwd=/sdcard/passwd_me # po ...