天天看點

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

目錄:導讀

一、jmeter目錄介紹

1.1 backups(備份)

1.2 bin

1.3 docs

1.4 extras

1.5 lib

1.6 licenses

1.7 printable_docs

二、jmeter主要元件介紹

2.1 測試計劃

2.2 Threads

2.3 測試片段

2.4 控制器

三、Jmeter接口測試執行個體

3.1 添加線程組

3.2 添加HTTP請求

3.3 添加檢視結果樹

3.4 參數化

3.5 添加斷言

3.6 添加斷言結果

3.7 添加聚合報告

四、總結

一、jmeter目錄介紹

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

1.1 backups(備份)

顧名思義,該目錄是個備份目錄,是将自己的各個Jmx腳本進行備份,所謂備份便是每次儲存都會将該腳本進行儲存到該目錄下,如果儲存多次便會儲存多個同樣的檔案,檔案名進行預設遞增更改。

1.2 bin

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體
  1. examples(例子):該目錄下存放Jmeter官方給的請求模闆
  2. report-template(報告模闆):該目錄下存放Jmeter的報告模闆(Jmeter是有自己的報告的)t
  3. templates(模闆):該目錄下存放Jmeter的各類配置模闆,例如:JDBC、Beanshell、ThinkTime等
    jmeter目錄和主要元件介紹以及jmeter接口測試執行個體
  4. Beanshell----:Beanshell請求、監聽、斷言、函數等
  5. Jmeter.bat:啟動檔案
  6. jmeter.properties:配置檔案(屬性在官方文檔中有解釋)
  7. jmeter-server.bat:用于分布式
  8. shutdown.cmd:硬停止
  9. stoptest.cmd:軟停止
  10. xxx.sh:Linux下運作
  11. user.properties:使用者配置i檔案(同上)

1.3 docs

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體
  1. api:前面談到Jmeter是開源的,此處便是它的API文檔。
  2. css:xxxx
  3. Image:部分圖檔資源

1.4 extras

存放Build等配置,用于第三方內建建構

1.5 lib

存放各類jar包,元件類函數類等

1.6 licenses

許可證等

1.7 printable_docs

使用者手冊

二、jmeter主要元件介紹

2.1 測試計劃

描述一個性能測試,包含本次測試所有相關功能

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

其中各個配置的資訊詳見另一篇博文:https://blog.csdn.net/qq_34659777/article/details/99960544

2.2 Threads

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體
  1. Setup thread group:

一種特殊類型的線程,可用于執行預測試操作。即執行測試前進行定期線程組的執行

  1. Teardown thread group:

一種特殊類型的線程,可用于執行測試後動作。即執行測試結束後執行定期的線程組

以上兩個線程組,舉個例子:loadrunner的腳本除了action裡是真正的腳本核心内容,還有初始化“環境”的初始化腳本和測試完畢後對應的清除資訊的腳本塊,與其對應

  1. Thread group:

通常添加使用的線程,一般一個線程組可看做一個虛拟使用者組,其中每個線程為一個虛拟使用者

2.3 測試片段

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

2.5版本之後新增的一個選項,是一種特殊的線程組,在測試樹上與線程組一個層級,但是它不被執行,除非它是一個子產品控制器或者被控制器所引用時才會被執行

2.4 控制器

Jmeter有2種控制器:取樣器(sampler)和邏輯控制器(Logic Controller)

作用:用這些原件驅動處理一個測試

2.4.1 取樣器(Sampler)

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

是性能測試中向伺服器發送請求,記錄響應資訊,記錄響應時間的最小單元,JMeter 原生支援多種不同的sampler

如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、JDBC Request Sampler 等

每一種不同類型的 sampler 可以根據設定的參數向伺服器發出不同類型的請求。

Java Request Sampler 和 Beanshell Request Sampler 是兩種特殊的可定制的 Sampler (暫不讨論)

2.4.2 邏輯控制器(Logic Controller)

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

包含兩類原件:

一類是控制Test Plan中Sampler節點發送請求的邏輯順序控制器,常用的有:If Controller、Swith Controller、Loop Controller、Random Controller等

另一類是用來組織和控制Sampler節點的,如Transaction Controller、Throughput Controller等

三、Jmeter接口測試執行個體

3.1 添加線程組

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體
jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

線程組參數詳解:

  1. 線程數:虛拟使用者數。一個虛拟使用者占用一個程序或線程。設定多少虛拟使用者數在這裡也就是設定多少個線程數。
  2. Ramp-Up Period(in seconds)準備時長:設定的虛拟使用者數需要多長時間全部啟動。如果線程數為10,準備時長為2,那麼需要2秒鐘啟動10個線程,也就是每秒鐘啟動5個線程。
  3. 循環次數:每個線程發送請求的次數。如果線程數為10,循環次數為100,那麼每個線程發送100次請求。總請求數為10*100=1000 。如果勾選了“永遠”,那麼所有線程會一直發送請求,一到選擇停止運作腳本。
  4. Delay Thread creation until needed:直到需要時延遲線程的建立。
  5. 排程器:設定線程組啟動的開始時間和結束時間(配置排程器時,需要勾選循環次數為永遠)

    持續時間(秒):測試持續時間,會覆寫結束時間

    啟動延遲(秒):測試延遲啟動時間,會覆寫啟動時間

    啟動時間:測試啟動時間,啟動延遲會覆寫它。當啟動時間已過,手動隻需測試時目前時間也會覆寫它。

    結束時間:測試結束時間,持續時間會覆寫它。

現在先試一個簡單的例子,後面再進行詳細的配置。

3.2 添加HTTP請求

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

這裡我用了聚合資料的新聞API:

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

接口文檔如上,在JMeter中填寫就是這個樣子:

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

Http請求主要參數詳解:

  1. Web伺服器

協定:向目标伺服器發送HTTP請求協定,可以是HTTP或HTTPS,預設為HTTP

伺服器名稱或IP :HTTP請求發送的目标伺服器名稱或IP

端口号:目标伺服器的端口号,預設值為80,非必填項

  1. Http請求

方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

路徑:目标URL路徑(URL中去掉伺服器位址、端口及參數後剩餘部分)

Content encoding :編碼方式,預設為ISO-8859-1編碼,也可配置為utf-8

  1. 下面的幾個多選框

自動重定向:如果選中該項,發出的http請求得到響應是301/302,jmeter會重定向到新的界面

Use keep Alive:jmeter 和目标伺服器之間使用 Keep-Alive方式進行HTTP通信(預設選中)

Use multipart/from-data for HTTP POST :當發送HTTP POST 請求時,使用

  1. Parameters

parameter是指函數定義中參數

  1. Body Data

實體資料,就是請求封包裡面主體實體的内容,一般我們向伺服器發送請求,攜帶的實體主體參數,可以寫入這裡

  1. Files Upload

指的是:從HTML檔案擷取所有有内含的資源:被選中時,發出HTTP請求并獲得響應的HTML檔案内容後還對該HTML 進行Parse 并擷取HTML中包含的所有資源(圖檔、flash等):(預設不選中)

如果使用者隻希望擷取特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載下傳的特定資源表達式,隻有能比對指定正規表達式的URL指向資源會被下載下傳

3.3 添加檢視結果樹

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體
jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

3.4 參數化

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

在這裡我們添加一個新的變量:

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

然後在之前的HTTP請求中調用,調用格式為${keji_type}:

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

啟動就會在結果樹中檢視到相應的結果。

3.5 添加斷言

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

因為我們剛剛查找的是科技類的文章,是以我們來斷言,響應結果中是否有“科技”字段。

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

3.6 添加斷言結果

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體
jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

3.7 添加聚合報告

存放性能測試報告,在每次測試之前需要點選小掃把按鈕清除之前的調試結果。

jmeter目錄和主要元件介紹以及jmeter接口測試執行個體
jmeter目錄和主要元件介紹以及jmeter接口測試執行個體

聚合報告參數詳解:

  1. Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這裡顯示的就是 Name 屬性的值
  2. #Samples:請求數——表示這次測試中一共發出了多少個請求,如果模拟10個使用者,每個使用者疊代10次,那麼這裡顯示100
  3. Average:平均響應時間——預設情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,以Transaction 為機關顯示平均響應時間
  4. Median:中位數,也就是 50% 使用者的響應時間
  5. 90% Line:90% 使用者的響應時間
  6. Min:最小響應時間
  7. Max:最大響應時間
  8. Error%:錯誤率——錯誤請求數/請求總數
  9. Throughput:吞吐量——預設情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數
  10. KB/Sec:每秒從伺服器端接收到的資料量,相當于LoadRunner中的Throughput/Sec

一般而言,性能測試中我們需要重點關注的資料有: #Samples 請求數,Average 平均響應時間,Min 最小響應時間,Max 最大響應時間,Error% 錯誤率及Throughput 吞吐量。

這樣,我們就完成了一個完整HTTP接口的JMeter性能測試腳本編寫。

四、總結

如果你對軟體測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入:軟體測試技術群:603401995,群裡的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。