Dubbo接口压测

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

一、准备工作

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

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

A: Nova或Dubbo接口

  1. 这类接口的压测需要借助jmeter的高级功能,通过jar包的方式执行dubbo接口
  2. 脚本编写参考 [email protected]: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、系统负载、错误率,评估性能

原文地址:https://www.cnblogs.com/ceshi2016/p/9965863.html

时间: 2024-08-28 17:14:28

Dubbo接口压测的相关文章

基于Dubbo的压测调优实例

不久前参与开发了一个基于dubbo分布式框架的底层账单系统,并实现了其中的一部分业务接口,目前需对这些接口进行压测,以评估生产环境所能承受的最大吞吐量.笔者以其中一个查询接口为例来回顾此次压测的整体流程. 压测准备: 1.调用查询接口的测试jar包,作为dubbo-consumer,依赖了查询服务的api,测试module基于maven开发,执行maven clean package即可通过编译得到jar包 2.JMeter:Apache组织开发的基于Java的压力测试工具 方案: 无限次请求查

接口压测笔记(二)

隔了很久再来写第二篇随笔,这篇文章的内容是关于简单接口压测的记录已经报告. 上篇记录了Jmeter的简单操作已经接口的压测,这篇是对接口压测做一些记录,我目前完成公司的任务所记录下的表格. 步骤: 1.先打开我们的Jmeter压测工具,建立一个新的线程组 2.在线程组下面建立一个新的Http请求(Sampler中),以及察看结果树(看请求是否对错,以及访问接口之后返回的信息).聚合报告(吞吐率等相关数据的记录).图形报告(接口在访问过程的图形,不过这边可以不看,问题不大) 3.Http请求的地址

如何用fiddler 做接口压测【转】

一.fiddler接口压测 1)浏览器打开需要测试的url,可以看到url被fiddler拦截到,并出现在列表中. 2)在拦截到的url上点击鼠标右键,->replay -> shift+reissue request 设置访问次数,比如100 二.Composer简介 点开右侧Composer区域,可以看到如下界面,就是测试接口的界面了 1.请求方式:点开可以勾选请求协议是get.post等 2.url地址栏:输入请求的url地址 3.请求头:第三块区域可以输入请求头信息 4.请求body:

JMETER获取短信验证码接口压测

主要学习的内容包括发送HTTP请求.HTTP信息头管理器.HTTP cookies管理器.用户定义的变量.响应断言.CSV数据文件设置的使用. 一.测试相关网站及接口说明: 提供的测试网址为:http://www.qk365.com/security/register 使用Chrome浏览器,先将浏览器的cookies缓存清空. 清空后,打开待测试的网址,按F12键,输入要注册的手机号码,如“18300987622”,点击“发送验证码”,可以看到请求的接口为:http://www.qk365.c

【接口】接口压测性能分析及调优建议

常见的互联网架构中,一般都能看到spring+mybatis+mysql+redis搭配的身影,在我所服务的公司亦是如此.一般来说,应用内部的接口都是直接调用的,所谓的面向接口编程,应用间的调用直接调或者通过类似dubbo之类的服务框架来执行,数据格式往往采用json,即统一也方便各数据间做转换和取值,缓存一般使用redis或memcached,存储一些对象或json格式的字符串.对外提供的接口,一般都需要进行压力测试,以便估算其性能,并为后续的调优提供指导方向,以下接口便是在压测过程中出现的各

接口压测工具--jmeter

jmeter jmeter是apache公司基于java开发的一款开源压力测试工具,是一个较轻量的测试工具.运行需要安装jdk环境,jmeter为免安装软件,      解压后直接运行jmeter执行脚本即可.它也是跨平台的,支持在windows.linux.macos上使用. 1 jmeter-http接口脚本基本流程 添加线程组 添加http请求 在http请求中写入url.路径.请求方式.参数 添加查看结果树 调用接口.查看返回值 具体操作见下图示: 有时还需添加cookie和header

locust接口压测

前言: locust是完全基于python,是一个简单易用的分布式负载测试工具 Locust特性 使用Python编写模拟用户行为的代码,无需繁琐的配置 分布式可扩展,能够支持上百万用户 自带Web界面 不仅能测试web系统,也可以测试其它 Locust思想 在测试过程中,一群用户将访问你的网站.每个用户的行为由你编写的Python代码定义,同时可以从Web界面中实时观察到用户的行为. Locust完全是事件驱动的,因此在单台机器上能够支持几千并发用户访问.与其它许多基于事件的应用相比,Locu

Jmeter接口压测快速入门

[TOC] Jmeter简介 Jmeter是Apache开源的一个使用纯Java编写的压力测试工具,它最初是为测试web应用程序而设计的,但后来扩展到了其他测试功能.例如,可用于测试静态和动态资源以及web动态应用程序的性能等.Jmeter可以用来模拟对服务器.服务器组.网络或对象上的重负载,以测试其强度或分析服务在不同负载类型下的总体性能. 如今Jmeter是一个主流的.功能完善且强大的压测工具,由于是使用Java编写的,所以具有跨平台特性,可以运行在Windows.Mac.Linux等操作系

接口压测之——put方法2

由于LR不支持PUT方式,所以只好通过java Vuser写压测脚本,使用httpclient jar包,我使用的httpclient4.5版本. /* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import lrapi.web; import java.io.BufferedWriter; import java.io.FileWriter; i