1、Locust與其他性能測試工具對比
優(yōu)勢:1、Locust 完全基本 Python 編程語言,采用 Pure Python 描述測試腳本,并且 HTTP 請求完全基于 Requests庫。除了 HTTP/HTTPS 協(xié)議,Locust 也可以測試其它協(xié)議的系統(tǒng),只需要采用Python調(diào)用對應(yīng)的庫進(jìn)行請求描述即可。2、LoadRunner 和 Jmeter 這類采用進(jìn)程和線程的測試工具,都很難在單機上模擬出較高的并發(fā)壓力。Locust 的并發(fā)機制摒棄了進(jìn)程和線程,采用協(xié)程(gevent)的機制。協(xié)程避免了系統(tǒng)級資源調(diào)度,由此可以大幅提高單機的并發(fā)能力。
缺點:locust的局限性在于,目前其本身對測試過程的監(jiān)控和測試結(jié)果展示,不如jmeter全面和詳細(xì),需要進(jìn)行二次開發(fā)才能滿足需求越來越復(fù)雜的性能測試需要。
2、安裝:>?pip3 install locustio
3、查看命令:> locusts --help
-h, --help 查看幫助
-H HOST, --host=HOST 指定被測試的主機,采用以格式:http://10.21.32.33
--web-host=WEB_HOST 指定運行 Locust Web 頁面的主機,默認(rèn)為空 ''。
-P PORT, --port=PORT, --web-port=PORT 指定 --web-host 的端口,默認(rèn)是8089
-f LOCUSTFILE, --locustfile=LOCUSTFILE 指定運行 Locust 性能測試文件,默認(rèn)為: locustfile.py
--csv=CSVFILEBASE, --csv-base-name=CSVFILEBASE 以CSV格式存儲當(dāng)前請求測試數(shù)據(jù)。
--master Locust 分布式模式使用,當(dāng)前節(jié)點為 master 節(jié)點。
--slave Locust 分布式模式使用,當(dāng)前節(jié)點為 slave 節(jié)點。
--master-host=MASTER_HOST 分布式模式運行,設(shè)置 master 節(jié)點的主機或 IP 地址,只在與 --slave 節(jié)點一起運行時使用,默認(rèn)為:127.0.0.1.
--master-port=MASTER_PORT 分布式模式運行, 設(shè)置 master 節(jié)點的端口號,只在與 --slave 節(jié)點一起運行時使用,默認(rèn)為:5557。注意,slave 節(jié)點也將連接到這個端口+1 上的 master 節(jié)點。
--master-bind-host=MASTER_BIND_HOST Interfaces (hostname, ip) that locust master should bind to. Only used when running with --master. Defaults to * (all available interfaces).
--master-bind-port=MASTER_BIND_PORT Port that locust master should bind to. Only used when running with --master. Defaults to 5557. Note that Locust will also use this port + 1, so by default the master node will bind to 5557 and 5558.
--expect-slaves=EXPECT_SLAVES How many slaves master should expect to connect before starting the test (only when --no-web used).
--no-web no-web 模式運行測試,需要 -c 和 -r 配合使用.
-c NUM_CLIENTS, --clients=NUM_CLIENTS 指定并發(fā)用戶數(shù),作用于 --no-web 模式。
-r HATCH_RATE, --hatch-rate=HATCH_RATE 指定每秒啟動的用戶數(shù),作用于 --no-web 模式。
-t RUN_TIME, --run-time=RUN_TIME 設(shè)置運行時間, 例如: (300s, 20m, 3h, 1h30m). 作用于 --no-web 模式。
-L LOGLEVEL, --loglevel=LOGLEVEL 選擇 log 級別(DEBUG/INFO/WARNING/ERROR/CRITICAL). 默認(rèn)是 INFO.
--logfile=LOGFILE 日志文件路徑。如果沒有設(shè)置,日志將去 stdout/stderr
--print-stats 在控制臺中打印數(shù)據(jù)
--only-summary 只打印摘要統(tǒng)計
--no-reset-stats Do not reset statistics once hatching has been completed。
-l, --list 顯示測試類, 配置 -f 參數(shù)使用
--show-task-ratio 打印 locust 測試類的任務(wù)執(zhí)行比例,配合 -f 參數(shù)使用.
--show-task-ratio-json 以 json 格式打印 locust 測試類的任務(wù)執(zhí)行比例,配合 -f 參數(shù)使用.
-V, --version 查看當(dāng)前 Locust 工具的版本.