手把手教你如何使用jmeter做性能測試

2021-02-25 軟體測試君


本文共3040字  閱讀約需5分鐘

(後臺回復「Python福利」獲取一份Python學習入門圖解)

一、為什麼要寫這篇文章?

在博客園和公號連續寫文章,已經快兩年了。

自然在公號或博客園閱讀過我文章的同學,基本都能聯繫到我的。

就在幾天前,有個同學加我微信,當然我並不驚訝,甚至習以為常(因為總有人加我微信),為什麼呢?

這裡講下原因吧,對於被添加好友一般可為以下幾類:

第一種:微商,你一看朋友圈,各種商品廣告連接,哇,好頭疼!

第二種:索取,「大佬,有學習視頻、資料嗎?」,官方回答,有,200,還需要嗎?

第三種:直接發來「進群」,我知道你誰呀,想幹什麼的,搞「團結」來了?

第四種:不說話,也不清楚要做什麼,某一天發現自己意外被刪除了,是不是感覺特無辜,有木有!

但這個同學,我要著重說一下,挺有意思的。這是一個關注我公號很久的一個粉絲,總會看我的文章。我們聊了一會,他和我說了下他的情況,也是個自學黨,問我有老師講jmeter課程嗎?想系統學習一下。

畢竟我不是專業搞培訓,雖然工作多年,也不敢妄稱為人師,怕誤人子弟呀,也只能勉強算工作稍微久一些吧。

但作為一個自學黨,自知自學是一件多麼堅難的事。

當然,還有一點就是自己的小玻璃心,受到了影響。因為有一陣自己特別不愛寫文章,周期大概有1-2個月,為什麼呢?

文章閱讀量一直開始走低,而且好多人都不看,甚至連點開都不願意,更別談分享到朋友圈了。而且有人在群裡艾特我問我問題,我說這都寫過文章呀,結果他說不到呀,你發給我下,我那個心裡的難受呀,就別提了

後來我就琢磨是為什麼,是排版不好看呢?還是內容寫的low?後來也總結了一些原因,只能一點點堅持努力改進,期待閱讀量上去。

但是,這個同學給我了一種強烈的認同感,頓時讓我覺得備受期待,原來我寫的文章,還有人看的,超感動的!所以當他說出困惑後,我想了想,我還是可以幫上一些人的,必須堅持寫下去,幫助一些渴望學習技術的同學,所以就專門寫了這篇文章。

那麼就我限有的知識,來詮釋怎麼做一個功能的性能測試。

二、性能測試的分類


做性能測試,有些名詞自然也是需要了解的,如果後面篇幅我提到有些名詞,感覺生疏,不好理解的。請自行百度一下,對於概念性的東西,個人感覺百度說的比我好多了。

那麼性能測試分為哪些呢,簡單來說分為以下幾類:

1、壓力測試

目的:找出臨界點。

2、負載測試

目的:找出能承受的最大負載量。

3、穩定性測試

目的:驗證系統是否有內存洩露等問題。

4、容量測試

目的:找出資料庫能夠處理的最大會話能力、最大容量。 

5、配置測試

目的:為系統調優提供參考。

三、性能測試流程


在實施性能測試的過程中,整體工作流程,如下圖所示:

當然,以上流程僅供參考,具體大家還需視公司情況自行調整。

1、性能需求分析


這裡以我們常用的禪道中的添加用例功能為例,進行分享。

1.1、調研期望指標(即性能需求)

這只是流程中的第一步,如果這一步做好了,接下來的測試方案設計、腳本開發、測試執行、測試報告都會輕鬆很多。

為什麼? 你想如果想都不想,直接搞,後面做的一切不都是白扯嘛!自己心裡都迷迷糊糊的,還怎麼去說服別人呢?

1.2、關於收據需求指標


友情提示:什麼所謂的二八原則,沒有數據支持依據一切都是屁話,完全沒說服力,也就是能忽悠下,沒接觸過性能測試的同學吧。

這裡在廢話幾句哈,做測試的要嚴謹,覺得可能?大約?應該就是這樣的吧?這些字眼能說服誰?下面劃重點,拿出數據說話、數據說話數據說話重要的事說三遍!

2、性能測試方案設計


2.1、測試目的、目標與範圍


目的:找出系統潛在的性能缺陷

目標:從安全,可靠,穩定的角度出發,找出性能缺陷,並且找出系統最佳承受並發用戶數,以及並發用戶數下長時間運行的負載情況,如要並發100用戶,如何對系統進行調優

測試功能範圍:本次測試計劃主要收集分析禪道添加用例並發請求相關數據,做出分析和調優

2.2、測試指標範圍


測試範圍:禪道中添加用例並發時,伺服器各項性能指標的性能測試

Jmeter指標:由於Apache旗下性能測試工具Jmeter收集的性能指標偏少,下面的數據選取代表性指標

1、Average/ms:伺服器處理事物平均響應時間(表示客戶端請求到伺服器處理信息且反饋客戶端的時間)

2、Throughput/s:伺服器每秒處理請求數(表示伺服器每秒處理客戶端請求數(單位:個/秒))

3、KB/s:伺服器每秒接受到的數據流量(表示伺服器每秒接受到客戶端請求的數據量KB表示)

硬體指標:


1、%Processor time:CUP使用率(平均低於75%,低於50%更佳)

2、System:Processor Queue Length:CUP隊列中的線程數(每個處理器平均低於2)

3、Memory:Pages/sec:內存錯誤頁數(平均低於20,低於15更佳)

4、Physical Disk-%Disk Time:磁碟使用率(平均低於50%)

5、SQL Server:Buffer Manager-Buffer Cache Hit Ratio:(在緩衝區告訴緩存中找到而不需要從磁碟中讀取的頁的百分比,正常情況次比率超過90%,理想狀態接近99%)

不需要關心的指標:


業務流程/路徑覆蓋率

業務數據的完整、正確性

其他諸如系統易用性、可管理性等屬於專項測試的內容

2.3、測試資源


條件有限,我就一個測試環境,虛擬機套出來的環境,所有服務都部署在一塊了,正常系統是分開部署的,這裡參考這個表格的屬性就好了。

2.4、測試準備

測試環境安裝:我這裡部署的是一個禪道系統,如何搭建百度一下

2.5、測試工具和測試策略


測試工具:Apache-Jmeter2.3.2

測試策略:根據公司內部實際情況,以及業務分布設置訪問量即並發用戶數

2.6、測試數據收集測試腳本、數據及其預驗證 


添加測試用例場景設計如下:

2.8、基準測試


目的:驗證測試腳本,初步檢查交易本身是否存在性能缺陷。

測試方法:採用5個用戶負載執行,取交易的平均響應時間作為衡量指標,並計算吞吐量

2.9、負載測試


目的:獲得交易本身的性能表現,診斷交易是否存在性能缺陷。

2.10、穩定性測試

壓測系統7x24小時

2.11、測試輸出成果物


《性能測試方案》

《性能測試記錄及問題跟蹤表》

《性能測試報告》

2.12、測試進度計劃


度量你性能測試期間,在每個時間點該完成的事。這裡根據公司情況來吧,我不給出示例了。

2.13、實施風險及規避措施


指對影響項目測試的各種可能發生的風險進行估計,以及對風險的發生機率和嚴重程度進行估計,並按照估計結果對風險進行排序

3、腳本開發製作


腳本開發製作:請參考文章《JMeter壓力測試實例操作》

4、伺服器監控


伺服器性能監控:請參考文章《Jmeter監控伺服器性能》

5、測試報告編寫 

這裡我只介紹可能會涉及的一些點、大家根據自己情況做增減,性能測試報告一般包含如下幾項內容:測試目標、參考文檔、測試環境說明、硬體配置、軟體配置、測試策略、人力資源、測試方案、測試場景、測試用例、測試結果及其分析、測試結論及建議等等。

至於每項的詳細內容,這裡就不逐項一一詳細說明了,請大家根據公司情況做設計編寫。

四、關於性能測試的一些看法

想要把性能測試做好,需要做好多方面的知識儲備,而且涉及到面非常廣,比如網絡,OS,系統架構,業務邏輯,協議報文,腳本開發,服務和系統的監控等等更多方面的知識。

值的一提的是,真正要把性能測試做得好,還得是大公司(真的肯花錢呀),畢竟人家真的是數據量大呀。我們一起回憶一下雙十一的淘寶和京東,這些才算的上真正意義的性能測試。

還有一點要說的是,性能測試真的是水太深了,箇中細節,相信做過性能測試的同學自有體味,哈哈哈!!!

以上僅為自己實際工作中的一些經驗,本人能力有限,如有不足,還請留言補充。最後,謝謝您的耐心閱讀!!

做事一定要有始有終,

堅持到底很重要。

相關焦點

  • jmeter單機最大負載_手把手教你用jmeter做壓力測試(詳圖)
    所以壓力測試是一個非常重要的步驟,下面我帶大家來使用一款壓力測試工具JMeter。二.關於JMeterApache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴展到其他測試領域。
  • Jmeter性能測試 入門
  • Jmeter性能及自動化全集
    正好今年雙十一,我司的全鏈路壓測,也嘗試了jmeter分布式壓測的手段。這篇博客,介紹下利用jmeter在NGUI模式下進行分布式壓測的 閱讀全文jmeter(二十六)生成HTML性能測試報告摘要:性能測試工具Jmeter由於其體積小、使用方便、學習成本低等原因,在現在的性能測試過程中,使用率越來越高,但其本身也有一定的缺點,比如提供的測試結果可視化做的很一般。
  • JMeter性能測試步驟是什麼?如何做軟體的性能測試?
    jmeter性能測試的步驟前提條件:規劃好性能測試所需要的標準,例如想要計算出來20個並發的前提下,在100QPS(每秒的請求數量)的壓力下,伺服器反饋響應時間的長短,然後形成報表來統計服務應用性能同時也可以針對每個接口的上下文建立起關聯,我們這裡以單接口的測試流程為例。請求參數分為parameters:代表著類似url後面直接拼接參數。bodys Data通常用來Form提交參數或者Json數據參數。Files Upload:代表著上傳文件。對應參數添加之後,接口基本信息完成。
  • 基於JMeter對J2EE應用程式進行性能測試
    我們的項目是基於BEA Weblogic的一個J2EE項目,在一個Domain中部署了3個J2EE應用,這樣在客戶使用的過程中出現了WebLogic內存垃圾回收的問題。於是我們配置了WebLogic集群,並將其中的某些應用分開部署,並使用了JMeter進行了性能測試。從而為應用程式的性能診斷提供了必要的依據。
  • 初學者如何編寫Jmeter測試腳本?
    Jmeter的Sampler用來模擬向被測試系統發起請求的,Jmeter會記錄取樣的結果,也就是TPS、響應時間等性能指標。接下來就是使用Java請求進行一個接口測試。大致流程1、導入jar包:導入Jmeter相關jar包2、編寫腳本:使用Eclipse或者IntelliJ IDEA,進行Java測試腳本的編寫3、導出為jar包:使用Eclipse或者IntelliJ IDEA將測試腳本編譯打包為jar包導出4、配置Jmeter:使用自編譯的jar包,以及一些相關配置進行性能測試5
  • 性能測試教程[7] jmeter接口自動化回歸測試
    3.用戶名沒填4.帳戶錯誤5.密碼錯誤可以使用jmeter發起接口測試,並將測試結果寫入到excel。定期執行測試腳本,檢查執行結果。第三步準備測試數據和測試案例命令格式空格與分號命令的組合符&&和||type命令快捷鍵   ps :Bash shell教程合集獲取請點擊原文連結Loadrunner安裝nmon安裝nmon analyserWindows性能監視器指標詳解
  • Jmeter(三十七) - 從入門到精通進階篇 - 輸出HTML格式的性能測試報告(詳解教程)
    ),但是有小夥伴們私下問,那宏哥還是順手寫一下吧,今天我們就來學習下,如何輸入HTML格式的JMeter測試報告。前面已經介紹, 如果要做性能測試,需要在GUI上設計好你的Test Plan,設置各種場景和負載值,包括多少個線程,多少個用戶,循環多少次。設置好了保存,然後用命令行去啟動性能測試,查看相關測試結果。2.Jmeter生成HTML格式報告的架構儀錶板生成引擎是基於示例操作流程的模塊化功能。
  • Jmeter-測試計劃
    測試計劃的作用測試計劃的功能面板
  • Jmeter生成壓力測試報告
    Jmeter生成壓力測試報告根據各大招聘網站上的需求來看,熟悉Jmeter做性能測試已經幾乎成為必要條件了。那麼今天在這個給大家安利一波。怎麼使用Jmeter生成壓力測試報告呢?條件準備:1、Jmeter3.2(推薦使用,比較穩定)2、JDK1.8(windows下安裝)3、已經寫好了接口腳本的測試計劃(jmx文件)
  • 接口&性能測試工具-JMeter環境部署
    , 按回車鍵顯示結果類似下圖所示, 即為 JDK 環境可用說明: JMeter 工具本身是免安裝的, 故此直接解壓下載好的文件即可解壓下載好的 apache-jmeter"環境變量" -> "系統變量" -> "新建"如下圖所示進行配置, 配置完成後, 點擊"確定"保存配置變量名: JMETER_HOME變量值: D:\apache-jmeter
  • Jmeter完整版中文操作手冊之四
    這將導致遠程測試出現問題。我們推薦大多數用戶運行最新版本。要安裝一個構建版本,簡單解壓zip/tar文件到你想安裝JMeter的目錄。保證一個JRE/JDK正確的安裝並且設置環境變量JAVA_HOME,其它不需要做什麼了。
  • 性能測試之Jmeter中如何設置參數化數據
    jmeter中進行參數化設置,右擊測試計劃或者線程組,add->config element->CSV Data Set ConfigAllow quoted data>含義是是否允許帶引號的數據,有兩個選擇true和false,false的意思是如果數據中包含引號,會進行URL編碼," 會轉換為%22這種形式,true的意思就是允許帶引號,不會進行編碼處理Recycle on EOF含義是沒有參數的時候是否循環使用,有三個選項
  • 實例教程:手把手教你Jmeter性能測試
    測試需求:測試20個用戶訪問百度,在負載達到30QPS時的平均響應時間。QPS:QueryperSecond,每秒查詢率。一臺查詢伺服器每秒能夠處理的查詢次數。名稱:本屬性用於標識一個取樣器,建議使用一個有意義的名稱。注釋:對於測試沒有任何作用,僅用戶記錄用戶可讀的注釋信息。
  • JMeter安裝與接口測試入門
    從本文開始,我將用心寫一個關於JMeter的文章系列,無論你是渴望入門,還是尋求進步,我希望你們都能從這裡有所收穫。歡迎關注❤️、評論📝、點讚👍!JMeter當初是為性能測試而生,與loadrunner形成競爭之勢,相對於loadrunner,JMeter在性能測試方面有自己的優點:JMeter開源,而loadrunner收費。
  • 軟體測試之學習接口工具jmeter基礎使用及soapui的使用
    jmeter的基礎使用介紹 (jmeter更適合做http類型接口測試)http測試:進入jemeter-單擊測試計劃(可修改)-點擊添加-threads(users)-線程組(查看(線程組即模塊)添加各信息:注意:添加請求必須在新建線程組—添加—sampler 這裡添加,其他地方請求都無效依賴包:必須有一個插件才可以進行下一步的操作Eg: http註冊接口測試
  • 接口測試詳解JMeter學習(廣州中軟卓越)
    Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴展到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、資料庫、FTP 伺服器, 等等。
  • Jmeter進行http接口測試,這一篇就搞定
    在線程組中添加一個用戶定義的變量,然後寫key和value就可以了,key就是這個參數的名稱,也就是你在腳本裡面取的值,value就是具體值了。在取參數化的值的時候,使用${name}這樣去取值,name就是你取的變量名稱。
  • jmeter無法滿足敏捷理念怎麼辦,使用二次開發集中管理!
    apache jmeter是apache軟體基金會出品的一款用於接口測試,壓力測試的開源軟體,由於其免費開源,插件j自由擴展,跨平臺,所以理論上可以支持所有種類的接口測試。jmeter自身也已經提供了許多優秀的插件,極大地增強了jmeter的能力。
  • JMeter工具簡單介紹
    打開之後顯示的是中文,如果你想使用其他語言,比如英文,那麼通過菜單選項->選擇語言->英文即可,當然轉為中文也是同樣操作。 四、JMeter 測試計劃元件 打開Jmeter頁面:包括測試計劃+工作檯。