JMeter的一個簡單的性能測試的完整過程:https://blog.csdn.net/lovesoo/article/details/78579547
1、一般而言,性能測試中我們需要重點關注的數據有: #Samples 請求數,Average 平均響應時間,Min 最小響應時間,Max 最大響應時間,Error% 錯誤率及Throughput 吞吐量。
2、性能測試中,設置的持續時間較短時,會有一部分請求沒有完成,一直暫停在那裏,不能結束。可適當加大設置持續時間。
對於打不開的圖片,F12打開開發者模式,拷貝img裏面的src地址,單獨打開是可以看到圖片的,或者把http改成https然後回車。應該是CSDN後臺nginx配置有問題導致的
jmeter需要配置三個環境變量:
1.JMETER_HOME:D:\apache-jmeter-5.1.1
2.CLASSPATH:;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
3.(不一定要配)Path:D:\apache-jmeter-5.1.1\bin
添加查看內存和CPU的方法:
1.解壓JMeterPlugins-Standard-1.4.0.zip,將其中\lib\ext\JMeterPlugins-Standard.jar包複製到jmeter安裝目錄下的\lib\ext下
2.解壓JMeterPlugins-Extras-1.4.0.zip,將其中\lib\ext\JMeterPlugins-Extras.jar包複製到jmeter安裝目錄下的\lib\ext下
3.將ServerAgent-2.2.1.zip解壓後放在需要監控的服務器上,並開啓startAgent.bat(windows)、startAgent.sh (linux)
4.啓動jmeter,在監聽器的選項中增加了一些jp@gc開頭的監聽器,監控cpu、內存、i/o的監聽是jp@gc - PerfMon Metrics Collector
5.配置:
這裏出現了錯誤,是百度對測壓做了保護,需要在HTTP請求中添加一個參數:tn=monline_4_dg
1.2 JMeter測試組成
JMeter元素有以下四種類型的測試元素:
1)測試計劃
2)線程組
3)組件
包含配置元件、定時器、前置處理器、後置處理器、斷言與監聽器
4)控制器
包括取樣器、邏輯控制器與測試片斷
1.2.1 測試計劃
測試計劃描述了JMeter測試在運行時執行的一系列步驟。完整的測試計劃由一個或多個線程組、邏輯控制器、取樣器、監聽器、定時器、斷言和配置元件組成。
測試計劃元素是JMeter測試樹的根節點,是唯一的,所有的測試元素節點都位於根節點之下。
1.2.2 線程組
在手工測試中,測試用例由測試工程師手動執行完成。而性能測試與自動化測試的測試用例由選擇的測試工具代替測試工程師來執行。JMeter執行測試的任務是由線程組來完成的。打個比方,線程組相當於手工測試中執行測試用例的測試工程師。
線程組控制JMeter用來執行測試的線程數。要模擬多少個用戶(稱之爲虛擬用戶)來執行測試,可以通過修改線程組的線程數來實現。比如將線程數設置爲10,表示模擬10個用戶執行測試。
所有的取樣器與邏輯控制器都必須位於線程組下,從這個角度理解,JMeter測試計劃真正開始於線程組。其他元素,例如監聽器,可以直接放在測試計劃下,在這種情況下,它們將作用於所有的線程組。
一個測試計劃下可以有多個線程組,在測試計劃中可以配置以並行或順序方式啓動多個線程組。
1.2.3 組件
JMeter中最基本的元素爲元件,元件是JMeter測試中的最小功能單元,每個元件都具有某種特定的功能。比如“Response Assertion”斷言元件,可以實現對請求或響應是否預期的驗證。
JMeter提供了很多元件,爲了方便用戶使用與管理衆多的元件,JMeter將多個功能類似或邏輯上相關的元件歸爲一類,稱爲組件。JMeter包含六大組件: 配置元件、定時器、前置處理器、後置處理器、斷言、監聽器。
- 配置元件
配置元件與取樣器密切相關。類似於配置文件之於軟件,軟件配置文件可以影響軟件的行爲;同樣通過配置元件可以新增或修改請求內容,實現對請求的自定義。
- 定時器
默認情況下,JMeter線程按順序執行取樣器而不會出現暫停的情況。通過將定時器添加到線程組來指定延遲。如果不加延遲,JMeter可能會在很短的時間內發送過多的請求到服務器,導致服務器負載過重而崩潰。
定時器可以使在其作用範圍內的每個取樣器執行前延遲一段時間。
- 前置處理器
前置處理器在進行取樣器請求之前執行一些操作。
如果前置處理器附加到取樣器元素,那麼它將在該取樣器元素運行之前執行。
前置處理器經常用於在運行之前修改取樣器請求的設置,或更新未從響應文本中提取的變量。
- 後置處理器
後置處理器在取樣器請求完成後執行一些操作。
如果後置處理器附加到取樣器元素,那麼它將在該取樣器元素運行之後執行。
後處理器通常用於處理響應數據,從中提取需要的值。
- 斷言
斷言用於驗證取樣器請求或對應的響應是否返回了期望的結果。
JMeter測試是否執行成功,結果是否預期,都可以通過添加斷言來進行驗證。
- 監聽器
監聽器可以在JMeter執行測試的過程中搜集相關的數據,並將這些數據不同的形式,比如樹、圖、報告等呈現出來。
比如,“圖形結果”監聽器繪製響應時間的曲線圖,“查看結果樹”監聽器顯示取樣器請求和響應的詳細信息等。
此外,有些監聽器還可以將蒐集到的測試數據保存到文件中以供以後使用。
1.2.4 控制器
- 取樣器
取樣器用於構建發給服務器處理的請求,即告訴JMeter怎樣將請求發送到服務器。例如,若要發送HTTP請求,可以選擇“HTTP Request”取樣器,同時還可以通過添加配置元件來自定義請求。
- 邏輯控制器
取樣器請求默認是以先後順序依次執行的,某些情況下滿足了複雜的業務/場景需求。通過邏輯控制器可以控制JMeter發送請求的邏輯,來實現複雜的業務/場景。比如有選擇性執行某些請求,循環執行請求,整體執行邏輯上有依賴關係的請求,交替執行請求等。
1.3 JMeter執行順序與作用域
1.3.1 執行順序
類似於運算符或操作符的優先級,當JMeter測試中包含多個不同的元素時,哪些元素先執行,哪些元素後執行,並不是嚴格按照它們出現的先後順序依次有序執行的,而是會遵循一定的內部規則,我們稱之爲JMeter元素的執行順序,一般情況下JMeter元素按照如下順序依次執行:
0. 配置元件
1. 前置處理器
2. 定時器
3. 取樣器
4. 後置處理器
5. 斷言
6. 監聽器
1.3.1 執行順序
類似於運算符或操作符的優先級,當JMeter測試中包含多個不同的元素時,哪些元素先執行,哪些元素後執行,並不是嚴格按照它們出現的先後順序依次有序執行的,而是會遵循一定的內部規則,我們稱之爲JMeter元素的執行順序,一般情況下JMeter元素按照如下順序依次執行:
0. 配置元件
1. 前置處理器
2. 定時器
3. 取樣器
4. 後置處理器
5. 斷言
6. 監聽器