JMeter效能測試-安裝與入門- IT閱讀

文章推薦指數: 80 %
投票人數:10人

JMeter效能測試-安裝與入門. 2019-01-12 254 ... 之後進入bin目錄,點選ApacheJMeter.jar檔案即可開啟Apache JMeter的圖形介面。

如果是在Mac系統下,可能會出現下圖所 ... JMeter效能測試-安裝與入門 首頁 最新 HTML CSS JavaScript jQuery Python3 Python2 Java C C++ Go SQL 首頁 最新 Search JMeter效能測試-安裝與入門 2019-01-12254 到ApacheJMeter官網下載最新版本的JMeterSource壓縮包,解壓到指定目錄下即可。

之後進入bin目錄,點選ApacheJMeter.jar檔案即可開啟ApacheJMeter的圖形介面。

如果是在Mac系統下,可能會出現下圖所示錯誤,因為在最新的macOSSierra系統下,系統偏好設定中的“安全與隱私”預設已經去除了允許“任何來源”App的選項,如果不開啟會直接影響到無法執行一些第三方應用。

解決方案是開啟終端,複製下面的程式碼並貼上到終端。

$sudospctl--master-disable 上面的程式碼執行完成後,系統偏好設定中的“安全與隱私”預設已經選擇允許“任何來源”了。

現在再次點選bin目錄下的ApacheJMeter.jar檔案,就可以開啟ApacheJMeter的圖形介面,如下圖所示,我們還可以選擇自己喜歡的外觀風格。

在上圖所示的JMeter圖形介面中,介面左側的區域叫工作臺。

現在工作臺上只有一個測試計劃,測試計劃是用來描述一個性能測試,包含與本次效能測試所有相關的功能,也就說本次效能測試的所有內容是於基於一個測試計劃的。

執行緒與使用者 通過右鍵單擊測試計劃彈出選單,可以新增執行緒與使用者,即Threads(Users)。

雖然Threads(Users)下有三個新增執行緒組的選項,但建立之後,圖形介面是一樣的。

Threads(Users)下有setUpthereadGroup、terDownThreadGroup、執行緒組三個選項。

setUpthereadGroup:用於執行預測試操作,也就是測試開始前定期執行的執行緒組 執行緒組:我們通常新增的執行緒組,可以當成是一個虛擬使用者組,執行緒組中的每個執行緒都可以理解成一個虛擬使用者 terDownThreadGroup:用於執行測試後操作,也就是測試結束後定期執行的執行緒組 下面我們再詳細看看執行緒組的具體設定。

按上面的圖片,我們從上到下介紹每一個選項的作用。

名稱:給執行緒組設定一個名稱 註釋:給執行緒組新增備註資訊 在取樣器錯誤後要執行的動作:線上程執行過程中,出現錯誤失敗後要如何處理 繼續:請求不會停止,繼續執行 StartNextThreadLoop:忽略執行緒當前迴圈錯誤,執行下一個迴圈 停止執行緒:停止當前錯誤執行緒,不影響其他執行緒執行 停止測試:當前執行的執行緒全部執行完畢後結束 StopTestNow:馬上停止全部執行緒 執行緒數:虛擬使用者數,一個虛擬使用者佔用一個執行緒,需要多少使用者併發,就設定多少個執行緒數 Ramp-UpPeriod(inseconds):設定的執行緒數需要多長時間全部啟動,比如執行緒數為100,準備時長為10,那麼需要10秒啟動100個執行緒,也就是每秒啟動10個執行緒 迴圈次數:每個執行緒傳送請求的次數,比如執行緒數為20,迴圈次數為100,那麼每個執行緒傳送100次請求,則總請求數為20*100=2000。

如果勾選了永遠,那麼所有執行緒會一直髮送請求,一直到測試停止執行為止 DelayThreadcreationuntilneeded:勾選後,執行緒只會在合適的、需要用到的時候建立 排程器:勾選後,可以設定本次測試的持續時間和啟動延遲時間 想要實現測試,除了設定執行緒組,還需要設定控制器,在JMeter中有兩種型別的控制器:取樣器和邏輯控制器,使用這些控制器可以驅動處理一個測試。

取樣器 通過右鍵單擊執行緒組彈出選單,可以新增取樣器,即Sampler。

取樣器是效能測試中向伺服器傳送請求,記錄響應資訊,記錄響應時間的最小單元。

JMeter支援多種不同的取樣器,如HTTP請求、FTP請求、TCP取樣器、JDBCRequest、Java請求等,每一種不同型別的取樣器可以根據設定的引數向伺服器發出不同型別的請求。

在那麼多取樣器中,我們就以較為常見的HTTP請求為例。

還是按上面的圖片,從上到下介紹每一個選項的作用。

名稱:標識當前取樣器,使用一個有意義的名稱 註釋:給當前取樣器新增備註資訊 協議:向目標伺服器傳送HTTP請求時的協議,填寫http或https,預設為http 伺服器名稱或IP:目標伺服器的域名或IP地址 埠號:目標伺服器的埠號,預設為80 方法:傳送HTTP請求的方法,可選擇GET、POST、HEAD等方法 路徑:目標URL路徑,不包括伺服器地址和埠 Contentencoding:內容的編碼方式,預設為iso8859 自動重定向:勾選後,當傳送HTTP請求後得到的響應是302/301時,自動重定向到新的頁面 跟隨重定向:勾選後,與自動重定向不同的是,會記錄重定向過程中的所有請求響應,在檢視結果樹時可以看到伺服器返回的內容,並對響應的內容做關聯 UseKeepAlive:勾選後,和目標伺服器之間使用Keep-Alive方式進行HTTP通訊 Browser-compatibleheaders:勾選後,當使用multipart/form-data時,會只發送Content-Disposition標頭 同請求一起傳送引數:在請求中傳送URL引數,可以將URL中所有引數設定在本表中,表中的每一行是一個引數值對 以上就是HTTP請求取樣器的大部分內容。

邏輯控制器 邏輯控制器可以控制取樣器的執行順序,因此,邏輯控制器需要與取樣器配合使用,否則邏輯控制器就沒有什麼意義。

放在邏輯控制器下面的所有的取樣器都會當做一個整體,執行時也會一起被執行。

我們以登入場景下經常會使用到的僅一次控制器為例。

如上圖,在測試計劃執行期間,該控制器下的取樣器對每個執行緒只執行一次,登入場景經常會使用到這個控制器。

配置元件 JMeter中的配置元件可以用來初始化預設值和變數,以便後續取樣器使用,將在其作用域的初始化階段處理。

我們以計數器為例,計數器允許使用者建立一個計數器,可以線上程組中任何地方被引用。

如上圖所示,計數器介面有以下設定項。

Startingvalue:計數器的起始值,第一次迭代時會把該值賦給計數器 遞增:每次迭代後,給計數器增加的值 Maximumvalue:計數器的最大值,如果超過最大值,重新設定為起始值,如果持續測試,建議不要設定最大值 Numberformat:可選格式,比如000,格式化為001、002 引用名稱:用於控制在其它元素中引用該值,形式為$(reference_name} 與每使用者獨立的跟蹤計數器:不勾選時,即全域性的的計數器,比如使用者#1獲取值為1,使用者#2獲取值還是為1。

勾選後,即獨立的計數器,每個使用者有自己的值,比如使用者#1獲取值為1,#2獲取值為2 ResetcounteroneachThreadGroupIteration:勾選與每使用者獨立的跟蹤計數器後,才可以選擇。

勾選後,則每次執行緒組迭代,都會重置計數器的值,當執行緒組是在一個迴圈控制器內時比較有用 以上就是計數器配置元件的大部分內容。

定時器 預設情況下,Jmeter的執行緒在傳送請求時沒有間歇,我們可以使用定時器來設定延遲與同步,以便設定請求之間應該隔多長時間。

同樣的,我們以ConstantThroughputTimer這個固定吞吐量定時器為例子。

ConstantThroughputTimer可以讓JMeter以指定數字的吞吐量執行,即指定TPS,只是這裡要求指定每分鐘的執行數,而不是每秒。

如上圖所示,下面我們認識一下ConstantThroughputTimer的設定選項。

名稱:定時器的描述性名稱 註釋:定時器的註釋資訊 Targetthroughput(insamplesperminute):每分鐘的吞吐量 CalculateThroughputbasedon:有以下選項可以選擇 Thisthreadonly:控制每個執行緒的吞吐量,總吞吐量=設定的吞吐量*執行緒的數量 Allactivethreads:設定的吞吐量將分配在每個活躍執行緒上,每個活躍執行緒在上一次執行結束後等待合理的時間後再次執行,活躍執行緒是指同一時刻同時執行的執行緒 Allavtivethreads(shared):與Allactivethreads基本相同,不同的是,每個活躍執行緒都會在所有活躍執行緒上一次執行結束後等待合理的時間後再次執行 Allactivethreadsincurrentthreadgroup:設定的吞吐量將分配在當前執行緒組的每一個活躍執行緒上,當測試計劃中只有一個執行緒組時,該選項和Allactivethreads選項的效果一樣 Allactivethreadsincurrentthreadgroup(shared):與Allactivethreadsincurrentthreadgroup基本一樣,不同的是,每個活躍執行緒都會在所有活躍執行緒的上一次執行結束後等待合理的時間後再次執行 以上就是ConstantThroughputTimer定時器的大部分內容。

前置處理器 前置處理器用於在實際的請求發出之前對即將發出的請求進行特殊處理,即在取樣器執行之前用來修改取樣器的。

以使用者引數這個前置處理器為例,使用者引數列表中的引數取值可以在測試計劃執行過程中發生變化。

如上圖所示,引數username和password分別有兩組不同的取值,通過介面右下方的四個按鈕,可以向列表中增加引數、增加引數值、刪除引數和刪除引數值。

勾選每次迭代更新一次後,則引數的值在每個迭代中保持不變,在新的迭代開始時取下一個值,如果不勾選,則引數值在每個在其作用域內的取樣器發出請求時取下一個可用值。

後置處理器 後置處理器用於對取樣器發出請求後得到的伺服器響應進行處理。

我們以正則表示式提取器為例,正則表示式提取器在請求完成後,會從響應資料中擷取一部分字串儲存到變數中,以便下一個請求使用。

如上圖所示,下面是各個引數值的含義。

Applyto:應用的範圍 Mainsampleandsub-samples:作用於父節點的取樣器及對應子節點的取樣器 Mainsampleonly:僅作用於父節點的取樣器 Sub-samplesonly:僅作用於子節點的取樣器 JMeterVariable:作用於jmeter變數,輸入框內可輸入jmeter的變數名稱 要檢查的響應欄位:樣本資料來源 主體:響應報文的主體 Body(unescaped):響應的主體內容,但是替換了所有的html轉義符 BodyasaDocument:從不同型別的檔案中提取文字,會影響效能 資訊頭:響應報文的資訊頭 RequestHeaders:請求報文的資訊頭 URL:統一資源定位符,即網路上用來描述資訊資源的字串 響應程式碼:響應狀態碼,比如200、404等 響應資訊:就是響應資訊呀 引用名稱:在HTTP等請求中,引用此資料,需要用到的名稱 正則表示式:用於將需要的資料提取出來的正則表示式 模板:表示使用提取到的第幾個值,−1−1表示取所有值,00表示隨機取值,11表示取第1個,以此類推nn表示取第n個 匹配數字(0代表隨機):0代表隨機取值,1代表全部取值 預設值:如果正則表示式沒有搜找到值,則使用此預設值 以上就是正則表示式提取器這個後置處理器的大部分內容。

斷言 斷言用於檢查測試中得到的相應資料等是否符合預期,斷言一般用來設定檢查點,用以保證效能測試過程中的資料互動是否與預期一致。

我們以CompareAssertion這個比較斷言為例,CompareAssertion是一種比較特殊的斷言,針對斷言進行字串替換時使用。

如上圖所示,我們看一下每一個設定的內容。

CompareContent:可以選擇比較的內容型別,True、False或自定義編輯 CompareTime:比較時間,可以設定比較的時間,單位為秒,預設為-1 RegexString:要替換的字串,可從斷言結果中選擇 Substitutions:替換的字串,即替換結果 以上就是CompareAssertion這個斷言的大部分內容。

監聽器 監聽器可不是用來監聽系統資源的,它是用來對測試結果資料進行處理和視覺化展示的,圖形結果、察看結果樹、聚合報告等都是我們經常用到的。

我們以聚合報告為例,聚合報告會統計響應資訊並提供請求數、平均值、最大值、最小值、錯誤率、大約吞吐量和吞吐量等資料。

對於聚合報告,我們主要看一下它統計了那些資料。

Label:每個部分的Name值,例如HTTP請求的Name Samples:發出請求數量 Average:平均響應時間,預設是單個請求的平均響應時間 Median:中位數,也就是50%使用者的響應時間 90%Line:90%使用者的響應時間 95%Line:95%使用者的響應時間 99%Line:99%使用者的響應時間 Min:最小響應時間 Max:最大響應時間 Error%:本次測試中出現錯誤的請求的數量/請求的總數 Throughput:吞吐量,預設情況下表示每秒完成的請求數 KB/sec:每秒從伺服器端接收到的資料量 到此為止,我們已經簡單瞭解Jmeter的基本組成元件了,我們以後的效能測試工作也就是使用這些元件來完成的,如果我們能靈活的使用Jmeter的這些元件,Jmeter就能完成各種各樣的測試任務。

. 相關文章 JMeter效能測試-安裝與入門 locust效能測試安裝 效能測試安裝篇(windows安裝loadrunner) Jmeter效能測試實踐--登入場景設計 大話效能測試系列(1)-效能測試概念與主要指標 效能測試分析與效能調優診斷--史上最全的伺服器效能分析監控調優篇 225.JMeter效能測試(模擬併發) Jmeter效能測試步驟簡單回顧 原 jmeter效能測試---登入百度進行搜尋 EMQTT測試--安裝與測試 【使用Postman測試web介面】Postman的安裝與入門 android效能測試封裝工具----ctrace4android,附效能測試的3個例子 Badboy自動化測試工具匯出指令碼用於JMeter效能測試 效能測試之效能測試定義與過程 Jmeter效能測試資源監控 分類導航 HTML/CSS HTML教程 HTML5教程 CSS教程 CSS3教程 JavaScript JavaScript教程 jQuery教程 Node.js教程 服務端 Python教程 Python3教程 Linux教程 Docker教程 Ruby教程 Java教程 JSP教程 C教程 C++教程 Perl教程 Go教程 PHP教程 正則表達式 資料庫 SQL教程 MySQL教程 PostgreSQL教程 SQLite教程 MongoDB教程 Redis教程 Memcached教程 行動端 IOS教程 Swift教程 Advertisement 三度辭典 Copyright©2016-2021IT閱讀  Itread01.comAllRightsReserved. 0.001291036605835



請為這篇文章評分?