前言
通過測試基礎(三) Jmeter安裝 - 大風北吹 - 博客園 (cnblogs.com)安裝完成Jmeter后,就可以使用Jmeter進行性能測試。
一、線程組
(1)、線程組分類
Jmeter線程組主要分為3類分別為線程組、setUp線程組、tearDown線程組
①線程組
這個就是我們通常添加運行的線程。通俗的講一個線程組,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。
②setUp線程組
一種特殊類型的ThreadGroup的,可用於執行預測試操作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試前進行定期線程組的執行;類似LoadRunner的init,測試開始時進行初始化的工作。
③tearDown線程組
一種特殊類型的ThreadGroup的,可用於執行測試后動作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試結束后執行定期的線程組;類似LoadRunnner的end,測試結束時進行回收工作。
(2)、線程組參數
三種不同線程組的參數設置頁面都一致
①在取樣器錯誤后執行的操作
1、繼續:繼續執行接下來的操作。
2、啟動下一次循環:開始下一次循環。
3、停止線程:退出該線程(不再執行此線程的操作)。
4、停止測試:等待當前執行的采樣器結束后,結束整個測試。
5、立即停止測試:馬上停止測試。
②線程屬性
1、線程數:相當於模擬的用戶數量。
2、Ramp-up 時間(秒):達到指定線程需要的時間,例如線程數為100,時間設定為10s,那么就是10s加載 100個線程,每秒啟動的線程數=100/10=10。
3、循環次數:如果填具體的數值,就是循環對應的次數;如果選擇“Forever”,則一直執行下去,直到手動停止。
4、same user on each iteration:每次迭代都有相同的用戶,此功勾選為默認勾選。如果只是做接口測試則無需管這個參數,如果是要做模擬多線程的情況則需要取消勾選。
5、延遲創建線程直到需要:延遲線程創建,直到需要才創建。
(3)、調度器
1、持續時間(秒):測試計划持續多長時間
2、啟動延遲(秒):測試計划延遲多長時間啟動
二、Http請求
可在線程組-取樣器中添加HTTP請求
協議:向目標服務器發送http請求時的協議,http/https,大小寫不敏感,默認http
服務器名稱或IP:需要調用的服務器或IP
端口號:目標服務器的端口號,默認值為80,可為空
HTTP請求:可以根據實際需要請求的接口,選擇請求的類型get/post...
路徑:目標的URL路徑(不包括服務器地址和端口)
內容編碼:請求內容的編碼,一般使用UTF-8
自動重定向:如果選中該選項,當發送HTTP請求后得到的響應是302/301時,JMeter 自動重定向到新的頁面。
跟隨重定向:Http Request取樣器的默認選項,當響應Code是3XX時,自動跳轉到目標地址。與自動重定向不同,jmeter會記錄重定向過程中的所有請求,在查看結果樹可以查看服務器返回的內容,可以對響應的內容進行關聯。
使用keepalive:該選項被選中時,jmeter 和目標服務器之間使用 Keep-Alive方式進行HTTP通信,默認選中。
對POST使用multipart/form-data:當發送HTTP POST 請求時,使用Use multipart/from-data方法發送,默認不選中。
參數:可手動添加請求參數,會放到請求數據中,格式為參數名=參數。無法與消息體數據共同使用。
消息體數據:此數據會與請求一起發出,發出的格式為手動設置的格式。無法與參數選項共同使用。
文件上傳:文件上傳的接口在進行測試的時候需要在文件上傳頁面設置上傳文件的屬性。由文件名稱、參數名稱、MIME類型構成。
三、Jar包導入
Jar包導入分為三種方法
1、在測試計划直接導入jar包
2、lib目前導入
可以把需要的jar包放入lib目前下,重啟后此jar包即可在Jmeter模塊中使用
3、其余目錄導入
通過修改bin目錄下的jmeter.properties文件中的plugin_dependency_paths,可以引用其余目錄下的jar包。
四、HttpInvoker請求
HTTPInvoker是spring框架中的一個遠程調用模型,它的執行基於HTTP的遠程調用,並使用JAVA的序列化機制在網絡間傳遞對象。
在Spring配置文件中創建一個類HttpInvokerProxyFactoryBean的Bean,指定serviceUrl屬性為服務器端的服務提供的URL,serviceInterface屬性為服務器端配置的服務類型。
需要調用對應接口,便需要把接口配置到xml配置文件中,並通過調用bean來完成遠程方法的調用。
①在jmeter文件中新建xml文件並把對應的xml文件放入文件中
② 新建線程組並在線程組中增加BeanShell 取樣器
③在Beanshell中導入接口調用需要的jar包,並通過xml配置文件獲取相應的Bean,參數組裝后即可調用相應的接口方法
五、正則表達式提取器
在一個線程組中,B請求如果需要使用A請求返回的數據,將上一個請求的響應數據作為下一個請求的參數,則需要對A請求的響應報文使用后置處理器,其中最方便常用的就是正則表達式提取器
引用名稱:Jmeter變量的名稱,存儲提前出的結果。
模板:表示使用提取到的第幾個值,$N$使用提取到的第N個值
匹配數字:正則表達式匹配數據的結果可以看成一個數值,0表示隨機取,正數N表示取第N個值。
缺省值:匹配失敗時候的默認值
正則表達式:
():表示提取字符串的部分值,前后是提取的邊界內容
?:出現在該符號之前的項目是可選的,最多匹配一次
*:匹配出現0次或多次的項目
+:匹配一次或多次之前的項目
$:匹配行末的空字符串
{N}:精確匹配N次的先前項目
六、查看結果樹
用來監控請求執行的結果,主要分為查看結果樹、匯總報告、聚合報告等。
也可以下載第三方監聽器。