今天跟你們分享一下Jmeter性能測試,首先須要瞭解性能測試的定義是什麼,爲何要作性能測試,性能測試指標、性能測試分類是什麼呢?接下來就跟你們聊一聊這些問題。面試
百度&知乎
性能測試是經過自動化的測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,二者能夠結合進行。經過負載測試,肯定在各類工做負載下系統的性能,目標是測試當負載逐漸增長時,系統各項性能指標的變化狀況。壓力測試是經過肯定一個系統的瓶頸或者不能接受的性能點,來得到系統能提供的最大服務級別的測試。
Wiki
In software quality assurance, performance testing is in general, a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage.
【六級】翻譯:
在確保軟件質量方面,性能測試通常來講是一種爲肯定一個系統在一些特殊工做負擔(負載)狀況下的響應和穩定性而作的測試。它能夠用來研究、測量、證實(確認)或者斷定系統的一些其餘質量屬性,好比健壯性、可靠性和資源使用(率)等。apache
一、頁面響應速度:Compuware公司分析了超過150個網站和150萬個瀏覽頁面,發現頁面響應時間從2秒增加到10秒,會致使38%的頁面瀏覽放棄率。
二、高併發:系統能承載的負荷
三、CPU使用率,太高會致使系統卡頓
四、特殊狀況:電源、網絡不穩定的狀況
總結就是一句話:爲了確保軟件(App、網站)在用戶使用的過程當中運行流暢。服務器
一、響應時間:評估系統的能力,主要從測試結果中的負荷和響應時間
二、吞吐量/率:發送消息,根據測試過程當中的負荷或代碼走差方式找出系統的極端或繁瑣的代碼邏輯,從而找到體系中的瓶頸或薄弱地方
三、事務處理能力
1)系統調優:重複進行測試,驗證系統活動是否達到預期結果、CPU使用率、內存利用率、磁盤I/O、網絡帶寬
2)驗證穩定性和可靠性:既要驗證系統的穩定性和可靠性,還要驗證人爲因素的穩定性網絡
1)負載測試:是經過逐步增長系統負載,測試系統性能的變化,並在知足最終肯定性能指標的狀況下,系統所能承受的最大負載量的測試;負載測試是正常範圍的測試
2)壓力測試:逐步增長系統負載,測試系統性能的變化,並最終肯定在什麼負載下系統性能處於失效狀態,並以此來得到系統能提供的最大服務級別的測試
3)容量測試:系統的極限或苛刻的環境中系統的性能表現併發
負載測試和壓力測試的區別:
1.負載測試強調系統正常工做狀況下的性能指標
2.壓力測試的目的是發如今什麼條件下系統的性能變得不可接受,發現應用程序性能降低的拐點ide
使用Jmeter你須要安裝:高併發
1) jdk
2)Jmeter工具
系統:Windows性能
Jmeter測試
Java和Jmeter下載很少說了,網上有的是,並且Jmeter是解壓即用。
進入...\apache-jmeter-5.1\bin
目錄,雙擊jmeter.bat
啓動Jmeter,若是正常打開,則安裝成功。
https://www.baidu.com/s?ie=utf-8&wd=jmeter性能測試
從上面接口地址能夠看到,請求參數有兩個
ie:編碼方式,默認爲utf-8
wd:搜索詞,此處爲「jmeter性能測試」
1. 右鍵點擊【測試計劃】 -> 【添加】 -> Threads(Users) -> 【線程組」】
2. 點擊線程組,可修改線程程序屬性值
線程組參數詳解:
由於接口調試須要,咱們暫時均使用默認設置,待後面真正執行性能測試時再回來配置。
右鍵點擊「線程組」 -> 「添加」 -> 「Sampler」 -> 「HTTP請求」
Http請求主要參數詳解:
一、Web服務器
協議:向目標服務器發送HTTP請求協議,能夠是HTTP或HTTPS,默認爲HTTP
服務器名稱或IP :HTTP請求發送的目標服務器名稱或IP
端口號:目標服務器的端口號,默認值爲80
2.Http請求
方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
路徑:目標URL路徑(URL中去掉服務器地址、端口及參數後剩餘部分)
Content encoding :編碼方式,默認爲ISO-8859-1編碼,這裏配置爲utf-8
三、同請求一塊兒發送參數
在請求中發送的URL參數,用戶能夠將URL中全部參數設置在本表中,表中每行爲一個參數(對應URL中的 name=value),注意參數傳入中文時須要勾選「編碼」
右鍵點擊「線程組」 -> 「添加」 -> 「監聽器」 -> 「察看結果樹」
這時,咱們運行Http請求,修改響應數據格式爲「HTML Source Formatted」,能夠看到本次搜索返回結果頁面標題爲「jmeter性能測試_百度搜索」
咱們能夠添加用戶自定義變量用以Http請求參數化,右鍵點擊【線程組】->【添加】->【配置元件】->【用戶定義的變量】
新增一個參數wd,存放搜索詞,在HTTP請求中使用該自定義變量,用法爲:${wd}
右鍵點擊【HTTP請求】->【添加】->【斷言】->【響應斷言】
校驗返回的文本中是否包含搜索詞,添加參數${wd}到要測試的模式中。
右鍵點擊【HTTP請求】->【添加】->【監聽器】-> 【斷言結果】
添加好之後,注意,腳本結構是這樣的哦:
執行:
上圖就是斷言結果成功的界面,若是把響應斷言修改成${wd}123:
執行後斷言結果爲:
右鍵點擊【線程組】->【添加】->【監聽器】->【聚合報告】,用以存放性能測試報告
這樣,咱們就完成了一個完整Http接口的JMeter性能測試腳本編寫
點擊線程組,配置本次性能測試相關參數:線程數,循環次數,持續時間等,這裏咱們配置併發用戶數爲10,持續時間爲10s
若是對軟件測試、接口測試、自動化測試、面試經驗交流。感興趣能夠加軟件測試交流:1085991341,還會有同行一塊兒技術交流。
通常而言,性能測試中咱們須要重點關注的數據有: #Samples 請求數,Average 平均響應時間,Min 最小響應時間,Max 最大響應時間,Error% 錯誤率及Throughput 吞吐量。以上內容但願對你有幫助,有被幫助到的朋友歡迎點贊,評論。