一鍵壓測工具改造(locust)


本文內容來自“天外歸雲”大神,原文鏈接http://www.cnblogs.com/LanTianYou/p/5987741.html,目前只對啟動腳本做了一些改造,應該說是,不適用powershell腳本,而使用bat批處理文件執行。之所以這么做,是考慮到powershell腳本運行權限默認沒有開啟,再者,開啟了之后存在一定的風險。故做了這個簡單的改造。

結構目錄如下:

原來使用的是start.sp1啟動腳本,用來調用start_locust.py,而后再由start_locust.py啟動locust並載入用例locust_test.py

原powershell腳本如下:

現在要做的是,使用bat批處理文件實現相同功能。其實查看代碼,比較簡單,就是讓用戶傳入兩個參數,然后再將參數傳給啟動locust的腳本。知道怎么做了,就好辦了,bat批處理文件腳本是通過set /p來傳入參數的,那么稍微改下就好了。新建文本,重命名為start.bat。右鍵編輯。寫入代碼如下:

其實此時功能已經實現,但算不上完美,所有再加點提示,體驗就更好了。

比如輸入為空提示,為窗口加上標題、時間,

@echo off
:menu
echo 使用說明:
echo 先輸入需要壓測的網站host,在輸入路由,即會自動打開頁面、進行壓力測試
:start1
title 這是一個一鍵壓測工具,現在時間是:%time%
echo 第一步,請先輸入壓測網站host(例如:http://www.cnblogs.com)
set /p a=:
if "%a%" == "" goto sorry1
echo 您輸入的壓測host是:%a%

:start2
title 這是一個一鍵壓測工具,現在時間是:%time%
echo 第二步,然后再輸入壓測網站host后的路由(例如:/mikasama)
set /p b=:
if "%b%" == "" goto sorry2
echo 您輸入的壓測路由是:%b%

python .\start_locust.py %a% %b%
pause
goto end

:sorry1
echo Warnning!!!Please enter the host!(eg:http://www.cnblogs.com)
goto start1

:sorry2
echo Warnning!!!Please enter the rout!(eg:/mikasama)
goto start2

:end
echo 不要瞎點,已經開始測試了

 效果如下:

好了,現在可以愉快的玩耍了。注意,目前這個工具只針對單個頁面進行壓力測試,下一篇再講如何將locust作為生產力工具,實現關聯測試,各種場景如多用戶每個用戶只執行一次、多用戶使用不用參數進行測試等等。

=====================================locust第一部分已完結================================

 

有個想法,也不知道可不可行,用django搭建一個性能測試平台,將locust整合進去。只要點點點就可以進行壓力測試,不過聽起來有點像是在造輪子,畢竟接口測試的工具實在太多了,比如postman、jmeter等。試想一下,比如我想測試一個接口,先不考慮驗簽等問題,它需要傳5個參數,其中有個參數需要傳大量不同數據,現在我只需要將固定的參數填上,而那個需要大量數據的參數,它的value我點擊下上傳按鈕,將已經准備好的csv、excel或者json,都好,上傳完畢,選擇壓力測試運行模式(施壓模式,如所有虛擬用戶循環使用數據、每個用戶只能使用一個等等),點擊start按鈕,開始壓測,並自動跳轉到對應監控頁面。雖然只是想想,但感覺好激動啊,一旦實現了,那做起性能測試來,太方便啦。而且還可以設計一個接口出來,用來修改腳本,定時器什么的肯定要的,只要有腦洞,都可以做上去吧。

靈感來自於公司運維同學正在做的自動化運維平台,整個運維過程,只要點點點,這種思想其實應該算是來自jenkin吧。當我發現他們正在做這個的時候,特別興奮,也許,性能測試也可以這么整,於是有了上面的“胡思亂想”。無論如何,試試吧。記在這里,不要忘了此想法,盡快實現。

有個疑問,locust是基於flask的,那么搭這平台用django還是flask呢?打住打住,不要想了,請先動手,謝謝。

 時間:20180127


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM