在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力。

一、准备工作

  1. 环境准备:确保应用性能环境(perf)正常可用
  2. 压测接口梳理:通过 ops平台 - 应用 - 监控模块 [示例] 获取频繁访问的接口,确定需要压测的接口列表
  3. 测试数据准备:根据接口请求的参数列表,从qa库中捞取需要的测试数据,导出到csv备用

二、压测脚本编写(jmeter版本3.2)

A: Nova或Dubbo接口

  1. 这类接口的压测需要借助jmeter的高级功能,通过jar包的方式执行dubbo接口
  2. 脚本编写参考 git@gitlab.qima-inc.com:qa/bit-performance.git 工程,原理就是使用jmeter提供的插件,获取jmeter中配置的参数,并执行dubbo接口调用和预期的返回结果校验。其中要直连perf环境的ip:port
  3. 脚本编写完并且测试通过之后,打包 (mvn clean install -e -U -Dmaven.test.skip -Pperf -Denvironment=perf)
  4. 将打包的文件copy到 jmeter目录下的 ../lib/ext/ 目录
  5. 启动jmeter,创建一个Simpler为java的请求时,即可加载我们配置的jar
  6. 将参数设置为从csv文件获取,这里需要注意几点:
    1. 如果csv文件中第一行有标题,那需要Ignore first line
    2. 在本地调试脚本的时候,cas的路径是本地相对路径,如果上传到压测平台时,需要修改为和jmx文件的相对路径,即相同路径
    3. 如果你不需要将csv中的参数增加引号,设置Allow quoted data为false

B: Http接口

  1. http接口不需要额外写请求工程,直接配置jmx文件
  2. 其他内容和dubbo接口类似

C:压力模型配置

  1. jmeter插件支持Concurrency Thread Group,需要添加jar包
    1. 官方最新版本:jmeter-plugins-cmn-jmeter-0.4.jar
    2. 可用低版本:jmeter-plugins-standard-1.4.0.jar

  2. 使用原生的压力模型

三、压测平台执行

参考性能测试平台使用帮助  和 性能测试平台如何获取监控数据,保证能正确使用性能平台,并且能获取监控数据

    1. 设置好业务线、应用,并配置测试计划,将所有需要的dubbo压测脚本jar、jmx、csv、依赖的concurrency jar包全部上传到测试计划中
    2. 测试任务中,需要配置应用机器和进程号,以确认能收集到正确数据
    3. 查看压测结果,看qps、rt、系统负载、错误率,评估性能

Dubbo接口压测的更多相关文章

  1. dubbo接口压测工具stresstester使用

    dubbo接口压测工具stresstester使用 https://blog.csdn.net/u013822349/article/details/79412719

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

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

  3. Jmeter--thrift接口压测,调用jar包失败报错:java.lang.NoSuchMethodError:

    调用thrift接口压测的jar包,出现了错误:java.lang.NoSuchMethodError: 错误可能的原因: 有这个类,该类真的没有这个方法 有这个类,而且有好几个,他们之间发生了冲突 ...

  4. 【问题记录】LoadRunner 接口压测-json格式报文

    [问题起因] 前段时间,协助其他项目录制接口压测脚本,对方要求请求报文内容实现参数化. 请求方法如下: 直接在Parameter List中新增一个parameter, 将请求报文放入dat文件中.这 ...

  5. jmeter接口压测的反思

    jmeter接口压测的反思 1.keepalive的坑:连接数满了,导致发起的请求失败. 2.token关联?是数据库取做参数化,还是随机数生成(需要改代码) 3.签名问题如何处理? 4.压测负载机端 ...

  6. JMeter接口压测和性能监测

    JMeter接口压力测试总结 一.安装JMeter 1.     在客户端机器上安装JMeter压测工具,我这里安装的版本是apache-jmeter-5.2.1,由于JMeter是JAVA语言开发的 ...

  7. 基于Dubbo的压测调优实例

    不久前参与开发了一个基于dubbo分布式框架的底层账单系统,并实现了其中的一部分业务接口,目前需对这些接口进行压测,以评估生产环境所能承受的最大吞吐量.笔者以其中一个查询接口为例来回顾此次压测的整体流 ...

  8. JMeter接口压测——ServerAgent监控服务端性能指标

    ServerAgent作为一个服务端性能监控插件,结合JMeter自身插件PerfMon可以实现JMeter压测的图形化实时监控,具有良好的实用性.下面讲解一个应用实例 思路: 1. 插件准备 2.打 ...

  9. Jmeter接口压测小思路

    1.压力接口测试分2种:一种是单场景,压一个接口:第二种是混合场景,多个有关联的接口.压测时间,一般场景都运行10-15分钟.如果是疲劳测试,可以压一天或一周,根据实际情况定. 2.压测前要明确压测功 ...

随机推荐

  1. android测试--常用控件测试及测试经验(常见)

    1.图片选择器 ================测试中遇到的问题记录(除表中记录的)================================================== ①.曾出现,断 ...

  2. SVM:SVM之Classification根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测—Jason niu

    load BreastTissue_data.mat n = randperm(size(matrix,1)); train_matrix = matrix(n(1:80),:); train_lab ...

  3. Codefoces Gym 101652 【最大连续和】

    <题目链接> 题目大意: 给你一段只由 'B'和'R'组成的字符串,问你在连续的区间内,"B"和"R"的差值最大是多少,输出该区间:如果对于差值相等 ...

  4. 从零搭建 ES 搜索服务(三)同义词搜索

    一.前言 上篇介绍了 ES 的基础搜索,能满足我们基本的需求,然而在实际使用中还可能希望搜索「番茄」能将包含「西红柿」的结果也罗列出来,本篇将介绍如何实现同义词之间的搜索. 二.安装 ES 同义词插件 ...

  5. 流网络分析系统-SNAS

    流网络分析系统-SNAS SNAS,Streaming Network Analytics System (project SNAS) ,是一个收集.跟踪.存取 千万条实时路由对象的系统. 官网:ht ...

  6. ES6+javaScript原型

    Symbol 属性私有化,数据保护 let _gender = Symbol('gender') function Person(name, gender) { this.name = name; t ...

  7. mac安装Elasticsearch

    去官网下载https://www.elastic.co/downloads/elasticsearch 本人使用的是2.3.2版本,我下载的是tar版本的,然后解压. 进入es的安装目录, cd el ...

  8. sql 多行转多列,多行转一列合并数据,列转行

    下面又是一种详解:

  9. code——tmp

    #include<queue> #include<vector> #include<cstdio> #include<algorithm> #defin ...

  10. JavaScript基础笔记(九)事件

    事件 一.事件流 事件流描述的是从页面中接收事件的顺序. 一)事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点. 如:div------>b ...