easy_runner一个简单的压测程序
生活随笔
收集整理的這篇文章主要介紹了
easy_runner一个简单的压测程序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這次再公開一個小工具 easy_runner 一個來用做壓測的小工具
我主要用來做MySQL壓測的時候,直接壓業(yè)務(wù)端用的.
程序很簡單,總共不到400來行,推薦程序員自己壓測用,比LoadRunner這種重型壓測工具使用起來方便多了
下載可以到?http://code.google.com/p/easy-runner/?checkout出源碼來
使用說明見?http://code.google.com/p/easy-runner/wiki/Usage
# 介紹
一個Python實(shí)現(xiàn)的簡單壓測工具
#?Details
Easy Runner主要實(shí)現(xiàn)了多線程壓測,類似LoadRunner?,能得出QPS和RT,并能通過matlibplot畫出曲線圖.
##?特性
1. 支持多scenario同時執(zhí)行
2. 可為不同scenario設(shè)置think time和線程數(shù)
3. 支持warming
4. 可畫出性能曲線
5. 使用方便,啟動迅速,一條命令即可開始壓測
##?優(yōu)勢
1. scenario直接使用python編寫scenario,使天然支持多協(xié)議
2. Easy Runner一共300來行代碼,維護(hù)方便
##?劣勢
1. 是通過多線程來加大壓力,對客戶端要求較高,不能有太多的線程數(shù)
#?使用說明
##?設(shè)置篇
見easy_runner下的setting.py進(jìn)行配置
MONITOR_INTERVAL = 1 #設(shè)置性能監(jiān)控的時間間隔,默認(rèn)為1s,設(shè)的越小數(shù)據(jù)越正確?SCENARIOS_PATH=(“./scenario”,) #設(shè)置劇本的存放路徑,可以設(shè)置多個路徑,程序會從設(shè)置的路徑載入劇本
LOG_PATH_AND_FILE_NAME = “D:\tmp\runner.log” #設(shè)置log存放路徑,壓測信息都會記錄在這個log下,以便分析和作圖PIC_SAVE_PATH_ANDPREFIX = “D:\tmp\pic” #設(shè)置性能曲線的生成路徑和文件前綴.可設(shè)為None,如果為None,生成的圖片會直接以窗口方式打開_
_THREADRULE=(10,3) #線程預(yù)熱規(guī)則,前一個參數(shù)表示預(yù)熱間隔,后一個參數(shù)表示每次預(yù)熱會啟動的線程數(shù),可設(shè)為None,如果為None,則無預(yù)熱
##?劇本編寫篇
例子見附件中的easy_runnerscenarioexample.py 這是一個壓測劇本 其中?thread_num=200 為為這個劇本開啟的并發(fā)線程數(shù)
think_time = 0 為這個劇本執(zhí)行時的think time 單位為秒?run_count = 1000 為這個腳本的執(zhí)行次數(shù)
name=”update” 指定這個劇本的名字,如果不同的劇本使用相同的名字,那么在最后做性能曲線時,相同名字的數(shù)據(jù)會進(jìn)行合并顯示
??def init(self): 劇本初始化函數(shù)
def action(self): 劇本會被重復(fù)執(zhí)行的函數(shù)..需要返回True為成功,False為失敗?def destory(self): 劇本執(zhí)行完后的資源釋放函數(shù)
注意,劇本的類名必須是class Scenario(core.scenario.abstract_scenario):
##?使用篇
如果已經(jīng)做好了設(shè)置,也編寫好了腳本即可以開始壓測了. 開始壓測很簡單,直接在命令行鍵入python starter.py 就會開始壓測. 這個時候會根據(jù)MONITOR_INTERVAL設(shè)置的時間間隔,直接輸出QPS和RT信息,并同時開始記log (注:如果log已存在的話,原log會被重命名) 如果需要停止壓測,在命令行直接輸入q 回車 即可結(jié)束壓測.
##?生成圖形篇
生成圖形也很簡單,直接在命令行鍵入python plot.py 就是自動分析剛才的log文件生成圖形(plot.py需要matlibplot的支持~)
圖形樣例如下:
>
>
>
本文來源于"阿里中間件團(tuán)隊播客",原文發(fā)表時間"2011-09-10"
我主要用來做MySQL壓測的時候,直接壓業(yè)務(wù)端用的.
程序很簡單,總共不到400來行,推薦程序員自己壓測用,比LoadRunner這種重型壓測工具使用起來方便多了
下載可以到?http://code.google.com/p/easy-runner/?checkout出源碼來
使用說明見?http://code.google.com/p/easy-runner/wiki/Usage
# 介紹
一個Python實(shí)現(xiàn)的簡單壓測工具
#?Details
Easy Runner主要實(shí)現(xiàn)了多線程壓測,類似LoadRunner?,能得出QPS和RT,并能通過matlibplot畫出曲線圖.
##?特性
1. 支持多scenario同時執(zhí)行
2. 可為不同scenario設(shè)置think time和線程數(shù)
3. 支持warming
4. 可畫出性能曲線
5. 使用方便,啟動迅速,一條命令即可開始壓測
##?優(yōu)勢
1. scenario直接使用python編寫scenario,使天然支持多協(xié)議
2. Easy Runner一共300來行代碼,維護(hù)方便
##?劣勢
1. 是通過多線程來加大壓力,對客戶端要求較高,不能有太多的線程數(shù)
#?使用說明
##?設(shè)置篇
見easy_runner下的setting.py進(jìn)行配置
MONITOR_INTERVAL = 1 #設(shè)置性能監(jiān)控的時間間隔,默認(rèn)為1s,設(shè)的越小數(shù)據(jù)越正確?SCENARIOS_PATH=(“./scenario”,) #設(shè)置劇本的存放路徑,可以設(shè)置多個路徑,程序會從設(shè)置的路徑載入劇本
LOG_PATH_AND_FILE_NAME = “D:\tmp\runner.log” #設(shè)置log存放路徑,壓測信息都會記錄在這個log下,以便分析和作圖PIC_SAVE_PATH_ANDPREFIX = “D:\tmp\pic” #設(shè)置性能曲線的生成路徑和文件前綴.可設(shè)為None,如果為None,生成的圖片會直接以窗口方式打開_
_THREADRULE=(10,3) #線程預(yù)熱規(guī)則,前一個參數(shù)表示預(yù)熱間隔,后一個參數(shù)表示每次預(yù)熱會啟動的線程數(shù),可設(shè)為None,如果為None,則無預(yù)熱
##?劇本編寫篇
例子見附件中的easy_runnerscenarioexample.py 這是一個壓測劇本 其中?thread_num=200 為為這個劇本開啟的并發(fā)線程數(shù)
think_time = 0 為這個劇本執(zhí)行時的think time 單位為秒?run_count = 1000 為這個腳本的執(zhí)行次數(shù)
name=”update” 指定這個劇本的名字,如果不同的劇本使用相同的名字,那么在最后做性能曲線時,相同名字的數(shù)據(jù)會進(jìn)行合并顯示
??def init(self): 劇本初始化函數(shù)
def action(self): 劇本會被重復(fù)執(zhí)行的函數(shù)..需要返回True為成功,False為失敗?def destory(self): 劇本執(zhí)行完后的資源釋放函數(shù)
注意,劇本的類名必須是class Scenario(core.scenario.abstract_scenario):
##?使用篇
如果已經(jīng)做好了設(shè)置,也編寫好了腳本即可以開始壓測了. 開始壓測很簡單,直接在命令行鍵入python starter.py 就會開始壓測. 這個時候會根據(jù)MONITOR_INTERVAL設(shè)置的時間間隔,直接輸出QPS和RT信息,并同時開始記log (注:如果log已存在的話,原log會被重命名) 如果需要停止壓測,在命令行直接輸入q 回車 即可結(jié)束壓測.
##?生成圖形篇
生成圖形也很簡單,直接在命令行鍵入python plot.py 就是自動分析剛才的log文件生成圖形(plot.py需要matlibplot的支持~)
圖形樣例如下:
>
>
>
本文來源于"阿里中間件團(tuán)隊播客",原文發(fā)表時間"2011-09-10"
總結(jié)
以上是生活随笔為你收集整理的easy_runner一个简单的压测程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《C++入门经典(第6版)》——1.5
- 下一篇: Docker 最佳实践