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

一、准备工作

  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. HBase API操作

    |的ascII最大ctrl+shift+t查找类  ctrl+p显示提示 HBase API操作 依赖的jar包 <dependencies> <dependency> < ...

  2. day12 函数的使用方法:初识迭代器和生成器

    生成器和迭代器比装饰器简单多了... 这是老师的博客地址: http://www.cnblogs.com/Eva-J/articles/7213953.html 前情回顾: #装饰器: # 在不修改一 ...

  3. Pushing Boxes POJ - 1475 (嵌套bfs)

    Imagine you are standing inside a two-dimensional maze composed of square cells which may or may not ...

  4. 生日蛋糕 POJ - 1190 (搜索+剪枝)

    7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱.当 ...

  5. CodeForces - 893C Rumor【并查集】

    <题目链接> 题目大意: 有n个人,其中有m对朋友,现在你有一个秘密你想告诉所有人,第i个人愿意出价a[i]买你的秘密,获得秘密的人会免费告诉它的所有朋友(他朋友的朋友也会免费知道),现在 ...

  6. Spring AOP 切面编程实战Demo项目

    为什么会有此项目?在某日,我看博客时,看到了讲面向切面编程的内容,之前也知道spring是面向切面编程的,只是自己没有写过相关的代码,于是决定自己写一个test.但是url拦截器从外部看,和AOP有相 ...

  7. linux 学习笔记 文件权限管理篇

    chown chown -R mysql. /usr/local 把/usr/local/以及其下的所有的文件和子目录属主改为mysql ls -al * <---用这条命令查询 chgrp c ...

  8. mac上生成目录结构

    brew又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件. 一.安装brew ruby -e "$(curl -fsSL https://ra ...

  9. jmeter使用Beanshell预处理器从指定列表中获取随机值

    变量mynation从列表{"china", "US", "UK"}中随机取值 String[] nation = new String[] ...

  10. java中打开文件流后要关闭后重新打开

    记录错误,打开文件流一定要关闭并重新打开文件流,不然取的文件内容永远是第一次取的文件内容: /** * 读取配置文件 */ private Properties readProperties() { ...