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)正常可用 压测接口梳 ...
随机推荐
- 002-Go通过ioutil 读写文件
1.读取文件内容 package main import( "io/ioutil" "fmt" ) func main(){ b,err := ioutil.R ...
- 使用paramiko中 Server not found in known_hosts的错误解决
报错的格式如下: 主要是缺少set_missing_host_key_policy配置信息. set_missing_host_key_policy方法,是制定连接远程主机没有本地密钥或HostKey ...
- Python2.7.14新手学习
python2.7.14 让用户选择一个功能,然后对其进行操作的例子.中间有问题的是年龄没有做是否是数字判断 注意:和版本python3不同的地方 1.编码 2.输入地方是raw_input 3.业务 ...
- C# lambda方式取出前十个经常联系的手机号码
这个场景适合所有要查找相同字符串的个数并返回一个序列 //取出前十个经常联系的手机号(即:计算重复手机个数最多的前十个) ).Select(i=>).ToList();
- node.js模块化写法入门
子模块的写法: function SVN(){ console.log('svn initialized'); return this; } function getInstance() { cons ...
- java HMAC_SHA1加密算法
java HMAC_SHA1加密算法 CreationTime--2018年7月14日16点46分 Author:Marydon 1.准备工作 import javax.crypto.Mac; i ...
- soapui not supported the auto complete
http://forum.soapui.org/viewtopic.php?t=19850 syntax highlighting or content assist inside soapUI? t ...
- 配置Jenkins的slave节点的详细步骤适合windows等其他平台
@ 新建一个slave节点在Jenkins服务器上 1,进入Jenkins的主界面,进入"Manage Jenkins" 页面: 2,点击如下图中的"Manage N ...
- JAVA8 Lambda初体验
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...
- python之函数用法setdefault()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法setdefault() #D.get(k,d) #说明:k在D中,则返回 D[K], ...