easy_runner一个简单的压测程序

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

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

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

下载可以到 http://code.google.com/p/easy-runner/ checkout出源码来

使用说明见 http://code.google.com/p/easy-runner/wiki/Usage

# 介绍

一个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_ANDPREFIX = “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"
相关文章
|
存储 缓存 监控
Web 应用程序性能测试核心步骤
Web 应用程序性能测试核心步骤
240 0
|
开发框架 测试技术 定位技术
如何开展移动应用程序性能测试?
如何开展移动应用程序性能测试?
312 0
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
614 1
|
前端开发 小程序 测试技术
靠谱:开源IM项目OpenIM压测程序介绍-自己动手测试性能和稳定性
靠谱:开源IM项目OpenIM压测程序介绍-自己动手测试性能和稳定性
1091 0
|
开发框架 测试技术 定位技术
移动应用程序如何做性能测试?
大家好,我是阿萨。随着移动应用程序的普及,移动应用程序的性能也越来越重要。今天就来聊一聊移动应用程序性能测试。
343 0
|
9月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
1891 10
|
11月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1500 23