博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
easy_runner一个简单的压测程序
阅读量:5989 次
发布时间:2019-06-20

本文共 1583 字,大约阅读时间需要 5 分钟。

这次再公开一个小工具 easy_runner 一个来用做压测的小工具


我主要用来做MySQL压测的时候,直接压业务端用的.


程序很简单,总共不到400来行,推荐程序员自己压测用,比LoadRunner这种重型压测工具使用起来方便多了


下载可以到 
 checkout出源码来


使用说明见 


# 介绍


一个Python实现的简单压测工具


Details


Easy Runner主要实现了多线程压测,类似LoadRunner
,能得出QPS和RT,并能通过matlibplot画出曲线图.


## 
特性


1. 支持多scenario同时执行

2. 可为不同scenario设置think time和线程数

3. 支持warming

4. 可画出性能曲线

5. 使用方便,启动迅速,一条命令即可开始压测


## 
优势


1. scenario直接使用python编写scenario,使天然支持多协议

2. Easy Runner一共300来行代码,维护方便


## 
劣势


1. 是通过多线程来加大压力,对客户端要求较高,不能有太多的线程数


使用说明


## 
设置篇


见easy_runner下的setting.py进行配置


MONITOR_INTERVAL = 1 #设置性能监控的时间间隔,默认为1s,设的越小数据越正确 
SCENARIOS_PATH=(“./scenario”,) #设置剧本的存放路径,可以设置多个路径,程序会从设置的路径载入剧本

LOG_PATH_AND_FILE_NAME = “D:\tmp\runner.log” #设置log存放路径,压测信息都会记录在这个log下,以便分析和作图
PIC_SAVE_PATH_AND
PREFIX = “D:\tmp\pic
” #设置性能曲线的生成路径和文件前缀.可设为None,如果为None,生成的图片会直接以窗口方式打开_

_THREADRULE=(10,3) #线程预热规则,前一个参数表示预热间隔,后一个参数表示每次预热会启动的线程数,可设为None,如果为None,则无预热
## 剧本编写篇
例子见附件中的easy_runnerscenarioexample.py 这是一个压测剧本 其中 
thread_num=200 为为这个剧本开启的并发线程数

think_time = 0 为这个剧本执行时的think time 单位为秒 
run_count = 1000 为这个脚本的执行次数

name=”update” 指定这个剧本的名字,如果不同的剧本使用相同的名字,那么在最后做性能曲线时,相同名字的数据会进行合并显示
  
def init(self): 剧本初始化函数

def action(self): 剧本会被重复执行的函数..需要返回True为成功,False为失败 
def destory(self): 剧本执行完后的资源释放函数


注意,剧本的类名必须是class Scenario(core.scenario.abstract_scenario):


## 
使用篇


如果已经做好了设置,也编写好了脚本即可以开始压测了. 开始压测很简单,直接在命令行键入python starter.py 就会开始压测. 这个时候会根据MONITOR_INTERVAL设置的时间间隔,直接输出QPS和RT信息,并同时开始记log (注:如果log已存在的话,原log会被重命名) 如果需要停止压测,在命令行直接输入q 回车 即可结束压测.


## 
生成图形篇


生成图形也很简单,直接在命令行键入python plot.py 就是自动分析刚才的log文件生成图形(plot.py需要matlibplot的支持~)


图形样例如下:


>


>


>

本文来源于"阿里中间件团队播客",原文发表时间"
2011-09-10"

转载地址:http://lcilx.baihongyu.com/

你可能感兴趣的文章
记一个 'Image 图片浏览器' 开源组件的开发流程
查看>>
我所理解的 iOS 并发编程
查看>>
绘制流程
查看>>
扩展Spring Cloud Feign 实现自动降级
查看>>
基于React+Webpack+Mobx+Less项目搭建指南
查看>>
前端防止用户重复提交-js
查看>>
面试——谈谈你对Java 平台的理解
查看>>
vue SPA项目,浏览器和nginx反向代理缓存问题解决实方案
查看>>
高级 vue 组件模式 1
查看>>
go公链实战0x02boltdb数据库
查看>>
【公测中】阿里云发布国内首个大数据双活容灾服务,满足高要求大数据灾备场景...
查看>>
小程序多业务线融合【完整分包业务接入】
查看>>
SEO优化之浅谈蜘蛛日志
查看>>
在ArrayList的循环中删除元素,会不会出现问题?
查看>>
【高能预警】一年一次,双11我们玩点大的,TrustAsia品牌SSL证书买一年送一年...
查看>>
iOS 中的 timer 任务(寻找内存恶鬼之旅)
查看>>
Python 拓展之推导式
查看>>
零基础学习 Python 之闭包
查看>>
比例缩放viewgroup
查看>>
深入JavaScript基础之深浅拷贝
查看>>