測試基礎(四)Jmeter基礎使用

前言

通過測試基礎(三) 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次的先前項目

 

六、查看結果樹

用來監控請求執行的結果,主要分為查看結果樹、匯總報告、聚合報告等。
也可以下載第三方監聽器。