本文內容來自“天外歸雲”大神,原文鏈接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