最近运维跟我反馈我负责的应用服务线上监控到消费RabbitMQ消息队列过慢,目前只有20左右,监控平台会有消息积压的告警. 开发修改了一版应用服务的版本,提交给我做压测验证. 之前没有做过消息中间件的压测,网上找了一圈测试方法,并且和开发沟通,最终确认通过压测RabbitMQ event消息处理的接口来完成本次的压测验证. 压测脚本: import pika import multiprocessing as mp import time def main(counter): routing_k…
作为消费者的客户端要消费Rabbitmq的消息,首先要建立与它某个队列的连接,具体连接时可指定队列的BindingKey和关系的exchange标识,Rabbitmq判断若已有队列通过BindingKey与exchange标识关联则允许消费者消费队列的消息,否则新建一个队列用指定的BindingKey与exchange关联,获取特定的消息.若果exchange是topic类型则也可用通配符‘#’获取所有发到这个exchange的消息. rabbitmq一个队列类似一个消费群组,当有多个消费者都关…
最近一段时间都在忙着转java项目最后的冲刺,前期的coding翻代码.debug.fixbug都逐渐收尾,进入上线前的性能压测. 虽然不是大促前的性能压测要求,但是为了安全起见,需要摸个底心里有个数. 毕竟这次转java的服务都是集团核心公共服务(主要是订单域服务).(等我们顺利上线了,我再来好好总结下其中的坎坷和壮举.) 废话不多说了,直接进入主题. 由于这次压测主要重点是关注正向的两个核心订单服务,下单服务.查单服务.查单服务初步压测下来问题不大,主要是db的索引和cache的问题. 下单…
一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口压测最方便) 模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会目标服务器造成巨大的负载,类似于简单的DDOS攻击等. 3.webbench webbench首先fork出多个子进程,每个子进程都循环做web访问测试.子进程把访问的结果通过pi…
[本文出自天外归云的博客园] 前篇 前篇:Python Locust性能测试框架实践 本篇 承上——归纳过程 在前篇的基础上,我们可以利用Locust性能测试框架编写python脚本对指定网站或者接口进行压测,对于Locust的使用我们可以归纳为三步: 1. 编写python压力测试脚本: 2. 在命令行中启动Locust服务并指定压测脚本与hosts等信息: 3. 访问Locust本地网址设定并发量并进行压测. 启下——编写脚本 对于以上三步,我通过编写脚本来做一下进一步封装,实现化繁为简,“…
2019年,中国移动软件市场仍呈现快速增长趋势,移动新生态孕育而生.而移动软件质量问题越发受到用户的关注,成为用户体验的关键因素.目前移动软件测试人才稀缺,而性能测试作为一项高门槛.高技术的测试能力,在行业中更为紧缺. 腾讯官方的一站式品质开放平台「腾讯WeTest」携手知名测试社区「TesterHome」,将腾讯沉淀十余年的品质管理经验凝聚而成,通过WorkShop专项培训的方式输出,助力孵化更多行业人才,打造移动测试大环境. 此次的专项培训我们将针对应用软件来分享性能测试的方法,通过基础篇.…
简介:使用非GUI模式,即命令行模式运行jmeter测试脚本能够大大缩减系统资源 1.配置jdk及添加环境变量 变量名:JAVA_HOME 变量值: C:\Program Files\Java\jdk1.8.0_51 (即jdk安装的位置)变量名:Path  (这个变量名已在系统变量中存在,现只需增加如下变量值)变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin变量名:CLASSPATH变量值:.;%JAVA_HOME%lib;%JAVA_HOME%lib\tools…
wrk 及扩展支持 tcp 字节流协议压测 高性能.方便使用的 HTTP(s) 的流量压测工具,结合了多个开源项目开发而成: redis 的 ae 事件框架 luajit openssl http-parser 减少造轮子.复用他人的成功项目,赞:我们定制化也走这条路线,代码见此. 要支持 tcp 字节流协议压测,只需要增加一个函数 stream_response,实现见此 -- data 的结果为 {"error_code":0,"error_msg":"…
使用celery的backend异步获取结果,本文使用rabbitmq 和 redis分别作为backend,代码对比如下 from celery import Celery, platforms import time import os from datetime import datetime app = Celery('proj', broker='amqp://admin:admin@ip:5672', //rabbitmq backend='amqp://admin:admin@ip…
本文讲述了利用jmeter来压测消息队列,其中消息队列采用apache的activemq,jmeter本身是支持符合jms标准消息队列的压测,由于jmeter的官方sampler配置比较复杂,本文直接使用sdk的方式来压测,与生产实际使用更加接近,各位如对官方的sampler感兴趣,可以自行去配置完成. 准备工作:下载activemq 地址:http://activemq.apache.org 本文中的activemq采用的是5.9.0版本. jMetterLessons工程源码地址:https…