Apache JMeter?和Locust都是是最受歡迎的性能測驗工具,
JMeter和Locust - 簡介
JMeter是久經考驗的性能框架之一,其第一個版本大約在20年前發布, 它是用純Java語言撰寫的, 最初,JMeter開發用于執行Web和FTP應用程式的負載測驗, 但是,現在它允許測驗幾乎所有應用程式和協議,使用戶能夠使用與任何OS平臺兼容的桌面應用程式來創建測驗,
https://github.com/apache/jmeter 6000+星
Locust是Python撰寫的相對新穎的性能框架,在過去的五年中廣為人知, 該框架的主要特點是使用純Python撰寫性能腳本,具有高度可擴展性,因為它基于事件的完全實作, Locust擁有廣泛且快速發展的社區,他們比JMeter更喜歡這個框架,
https://github.com/locustio/locust 210000+星
開源許可證
工具許可范圍的問題是最重要的問題之一,因為您可能想知道是否需要支付額外的第三方工具來完成負載測驗, 如果某個工具是開源的,那么您幾乎可以實作為性能測驗設定的任何目標,而無需任何額外付款, 開源JMeter和Locust也不例外,
JMeter和Locust都提供了許可軟體許可證,該許可證支持免費軟體,對軟體的分發方式提出最低要求, JMeter是由Apache開發的,它基于Apache License 2.0,而Locust是由由社區驅動的開發人員組成的小團隊開發的 ,基于MIT許可證, 在這兩種情況下,這些工具都是開源的,允許您自由使用它們,而不受任何使用限制,
負載測驗創建和維護
性能測驗作業流程有三個主要步驟:創建,運行和分析, 一般第一步是最耗時的,
撰寫JMeter性能測驗的最常用方法是使用其GUI模式, JMeter GUI模式提供了桌面客戶端,允許您輕松創建測驗,而無需撰寫單行代碼(直到您需要創建棘手的測驗), 所以最簡單的場景可能如下所示:
JMeter非常簡單,通常,即使是沒有經驗的工程師也可以毫無困難地上手,但是如果需要,您可以使用Java在GUI和非GUI模式下使用代碼, 但是,由于腳本實作的復雜性(因為JMeter旨在與GUI模式一起使用)以及缺乏如何制作此類腳本的檔案,因此這種方式在JMeter社區中并不流行,
Locust則需要python編程基礎,
支持的協議
理想情況下,您應該能夠使用盡可能少的工具測驗所有工具,只要它不會影響測驗質量,
使用JMeter,您可以使用完整的內置函式和第三方插件,在一個地方創建所有內容的性能測驗, 您無需編碼即可測驗不同的協議甚至資料庫, 這些包括JDBC,FTP,LDAP,SMTP等,JMeter還可以通過jar包擴展,比如加載jython,可以使用python腳本,
根據檔案,Locust主要用于基于HTTP Web的測驗,但可以擴展其默認功能并創建自定義Python函式來測驗可以使用Python編程語言進行測驗的任何內容,
并發用戶數
JMeter和Locust有完全不同的方式來處理機器資源, JMeter有一個基于執行緒的模型,它為每個用戶分配一個單獨的執行緒, 每個步驟的執行緒分配和基準測驗需要大量資源,這就是為什么JMeter對于您可以在一臺機器上模擬的用戶數量非常有限的原因, 您可以在一臺計算機上運行的用戶數取決于許多因素,如腳本復雜性,硬體,回應大小等, 如果您的腳本很簡單,JMeter允許您在一臺機器上運行多達數千個,但腳本執行逐漸變得不可靠,


Locust有完全不同的用戶模擬模型,它基于事件和異步方法,以gevent coroutine作為整個程序的基石, 這種實作允許Locust框架在一臺機器上輕松模擬數千個并發用戶,即使是在非常規的筆記本電腦上,也可同時運行內部有許多步驟的復雜測驗,

增強靈活性
這兩個工具提供相對相同的生成負載的方式 - 您可以指定在性能測驗期間要使用的用戶數以及它們應該加速的速度,
在JMeter中,您可以在指定欄位的“執行緒組”控制器中配置負載:但是JMeter還有其他插件,可以讓您配置非常靈活的負載, 最好的方法之一是使用Ultimate Thread Group ,它允許用戶制作非常具體的加載模式:
Locust有不同的方法, 當您運行性能腳本時,Locust會自動在http://localhost:8089 上啟動Web界面的服務器,該界面為您提供僅指定線性負載的輸入元素, 當然也可以命令列執行通過引數定制,
腳本錄制
這是JMeter具有強大優勢的地方,因為它具有腳本錄制的內置功能,而Locust根本沒有此功能, 除此之外,還有許多第三方插件可以為JMeter制作腳本錄制, 記錄此類腳本最方便的方法之一是使用BlazeMeter chrome擴展,
參考資料
- JMeter性能測驗工具快速入門教程-目錄 https://www.jianshu.com/p/7b1a3346dc0f
- python好書下載 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- https://github.com/Blazemeter/taurus
- https://blazemeter.com/blog/jmeter-vs-locust-which-one-should-you-choose/
- Pro Apache JMeter Web Application Performance Testing - 2017.pdf
https://url97.ctfile.com/f/18113597-384173739-662d27 - Master Apache JMeter – From Load Testing to DevOps.pdf
https://url97.ctfile.com/f/18113597-842780766-d98f17 (訪問密碼 WX訂閱號 pythontesting 輸入:密碼)
測驗監控
JMeter和Locust都提供了強大的內置功能來監控性能腳本并分析您的測驗結果, JMeter有許多不同的元素叫做監聽器, 每個偵聽器都提供特定型別的監視,你也可以使用許多現有的自定義監聽器擴展默認庫,另一方面,JMeter監聽器在其運行的機器上消耗大量資源,這就是為什么通常,JMeter是以非GUI模式執行的,沒有任何監聽器或監控程序,在這種情況下,可使用3方工具,如BlazeMeter ,

Locust的監測能力稍弱,不過幾乎提供了所有可用于監控基本負載的資訊,在腳本運行期間,Locust運行一個簡單的Web服務器,您可以在其中找到所有可用的監視結果:


與JMeter相比,Locust監控不占用您機器的大量資源, 這就是為什么Locust比JMeter有很大的好處,因為你可以使用內置監控,即使你需要模擬很多用戶, 另一方面,默認監控不提供您可以從第三方工具獲得的非常詳細的資訊, 這就是為什么你可能想檢查腳本監控的其他選項,
監控和分析測驗結果的最簡單方法之一是使用Taurus框架和BlazeMeter報告,它為您提供出色的實時報告,并能夠保存它們以進行進一步比較, 您可以查看這篇文章以獲得基本想法,
結論
具備python基礎對性能或靈活性要求高的建議使用Locust,反之JMeter可能是更好的選擇,
釘釘或微信號: pythontesting 微信公眾號:pythontesting轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/550960.html
標籤:其他
上一篇:數學建模論文排版(表格篇)
下一篇:返回列表
