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)正常可用 压测接口梳 ...
随机推荐
- 开源 JSON 库解析性能对比( Jackson / Json.simple / Gson )
Json 已成为当前服务器与 web 应用之间数据传输的公认标准. 微服务及分布式架构经常会使用 Json 来传输此类文件,因为这已经是 webAPI 的事实标准. 不过正如许多我们习以为常的事情一样 ...
- 收银台(POSBox) 配置向导
先决条件 在开始设置您的POSBox之前, 确保你准备好了一切. 你会需要 : POSBox 2A电源适配器 一台带最新的Web浏览器的计算机或平板电脑. 可用的的SaaS或已安装零售的Odoo 设置 ...
- unique-paths I &II 路径数,动态规划
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...
- Flink官网文档翻译
http://ifeve.com/flink-quick-start/ http://vinoyang.com/2016/05/02/flink-concepts/ http://wuchong.me ...
- HDU 4472 Count(数学 递归)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4472 Problem Description Prof. Tigris is the head of ...
- 深入理解JVM(三)——垃圾收集策略具体解释
Java虚拟机的内存模型分为五个部分.各自是:程序计数器.Java虚拟机栈.本地方法栈.堆.方法区. 这五个区域既然是存储空间,那么为了避免Java虚拟机在执行期间内存存满的情况,就必须得有一个垃圾收 ...
- Knockout学习之组合监控属性
组合监控属性 顾名思义,就是我们可以将多个属性合并为一个属性.这样在显示的时候就是整体了,并且其中任何一个属性发生改变,这个属性也都会随之发生改变从而更新视图,而这些只需要使用computed函数就可 ...
- VBA 一个很神奇的东西
百度经验参考:http://jingyan.baidu.com/article/4ae03de32663953efe9e6b47.html 今天奇迹般的发现了VBA,都怪自己平时使用excle不够多, ...
- 安装xenapp后,非管理员连接RDP出现桌面当前不可用的解决方法
安装完xenapp后,非管理员帐号就不能远程登录到2008服务器. 修改方法如下:1.启动 Citrix AppCenter展开citrix资源.Xenapp.<场地>.策略,右面的窗格切 ...
- asp:ObjectDataSource+asp:GridView 实现真分页
<asp:GridView ID="GridViewCacheManager" DataSourceID="OdsCacheManager" runat= ...