easy_runner一个简单的压测程序
生活随笔
收集整理的這篇文章主要介紹了
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"
我主要用來做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"
總結
以上是生活随笔為你收集整理的easy_runner一个简单的压测程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《C++入门经典(第6版)》——1.5
- 下一篇: 《大数据系统构建:可扩展实时数据系统构建