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接口,施压客户端自己把自己压死了的更多相关文章

  1. JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!

    JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是t ...

  2. 图解jmeter压测http接口

    此次压力测试是以一个http json的后台接口为例. 1. 创建相应的部件 2. 设置相应的参数 线程组主要用于设置一共要测试的线程数量(上图1000),每秒起的线程数(上图10),几秒内启动完单循 ...

  3. Jmeter实现dubbo接口压测案例

    当前项目中重构了消息服务,需要对消息服务接口做性能压测,评估消息服务的性能情况 通过和开发对接,目前消息服务是通过dubbo接口对内提供服务,所以才有了这边文章的记录 最初的压测这个dubbo接口有三 ...

  4. 实战jmeter入门压测接口性能

    什么是Jmeter? 是Apache组织开发的基于Java的压力测试工具. 准备工作: 一.安装配置好环境及压测工具 Jmeter下载地址:http://mirrors.tuna.tsinghua.e ...

  5. jmeter压测学习8-压测带token的接口

    前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口. 比如我现在要压测一个修改用户的个人信息接口,每个用 ...

  6. 5. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 接口以及场景压测

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  7. JMeter分布式压测实战(2020年清明假期学习笔记)

    一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口 ...

  8. Jmeter安装与使用(压测)

    一.介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件,Java Se ...

  9. Dubbo接口压测

    在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力. 一.准备工作 环境准备:确保应用性能环境(perf)正常可用 压测接口梳 ...

随机推荐

  1. jquery keycode

    判断键盘按下的键 $(window).keydown(function(event) { switch (event.which) { case (13): //Enter //要执行的操作 brea ...

  2. javascript数字转大写

    万亿级别,这个还有bug的 function money2Uppercase(num) { var m = parseInt(num); var ml = (m.toString()).split(' ...

  3. SpringBoot使用JSP渲染页面

    1.pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  4. 【Zookeeper】源码分析之持久化(一)之FileTxnLog

    一.前言 前一篇已经分析了序列化,这篇接着分析Zookeeper的持久化过程源码,持久化对于数据的存储至关重要,下面进行详细分析. 二.持久化总体框架 持久化的类主要在包org.apache.zook ...

  5. kube-proxy源代码分析

    摘要:假设你对kube-proxy的工作原理有一定的了解.本文基于kubernetes v1.5代码对kube-proxy的源代码文件夹结构进行了分析,并以iptables mode为例进行了完整流程 ...

  6. android ndk native错误分析方法

    使用ndk自带的工具进行分析, /mnt/d/Projects/linuxEnv/env/toolchains/aarch64-linux-android-4.9/bin/aarch64-linux- ...

  7. python3用http.server模块搭建简易版服务器

    基本流程: 1.需要的支持 1)python3用http模块下的子模块,即:http.server模块 2)将希望共享的文件放在c盘下,如:C:\游戏行业面试专用 2.打开cmd,cd c:\\pyt ...

  8. 图标资源: http://www.easyicon.net/ 可以按关键词搜索

      搜索图标    

  9. 查看/修改Linux时区和时间

    一.时区 1. 查看当前时区 date -R 2. 修改设置时区 方法(1) tzselect 方法(2) 仅限于RedHat Linux 和 CentOS timeconfig 方法(3) 适用于D ...

  10. React(0.13) 定义一个动态的组件(函数作为动态的值)

    <!DOCTYPE html> <html> <head> <title>React JS</title> <script src=& ...