使用Jmeter測試快速入門


一 創建線程組

 

 

1.1.2.   線程組主要包含三個參數:線程數、准備時長(Ramp-Up Period(in seconds))、循環次數。
1.1.3.    線程數:虛擬用戶數。一個虛擬用戶占用一個進程或線程。設置多少虛擬用戶數在這里也就是設置多少個線程數。
1.1.4.    准備時長(秒):設置的虛擬用戶數需要多長時間全部啟動。如果線程數為20 ,准備時長為10 ,那么需要10秒鍾啟動20個線程。也就是每秒鍾啟動2個線程。
1.1.5.  循環次數:每個線程發送請求的次數。如果線程數為20 ,循環次數為100 ,那么每個線程發送100次請求。總請求數為20*100=2000 。如果勾選了“永遠”,那么所有線程會一直發送請求,一到選擇停止運行腳本。
1.1.6.  . 調度器:設置線程組啟動的開始時間和結束時間(配置調度器時,需要勾選循環次數為永遠)
1.1.7.  持續時間(秒):測試持續時間,會覆蓋結束時間
1.1.8.  啟動延遲(秒):測試延遲啟動時間,會覆蓋啟動時間
1.1.9.  啟動時間:測試啟動時間,啟動延遲會覆蓋它。當啟動時間已過,手動只需測試時當前時間也會覆蓋它。
1.1.10.      結束時間:測試結束時間,持續時間會覆蓋它。

二.創建http請求

三.使用方法
3. 1指定請求域名,請求路徑

 

 

一個HTTP請求有着許多的配置參數,下面將詳細介紹:
名稱:本屬性用於標識一個取樣器,建議使用一個有意義的名稱。
注釋:對於測試沒有任何作用,僅用戶記錄用戶可讀的注釋信息。
服務器名稱或IP :HTTP請求發送的目標服務器名稱或IP地址。
端口號:目標服務器的端口號。
方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
Content encoding :內容的編碼方式,默認值為iso8859
路徑:目標URL路徑(不包括服務器地址和端口)
3.2. 指定請求域名,請求路徑
3.3查看表格信息

Sample:每個請求的序號
Start Time:每個請求開始時間
Thread Name:每個線程的名稱
Label:Http請求名稱
Sample Time:每個請求所花時間,單位毫秒
Status:請求狀態,如果為勾則表示成功,如果為叉表示失敗。
Bytes:請求的字節數
樣本數目:也就是上面所說的請求個數,成功的情況下等於你設定的並發數目乘以循環次數
平均:每個線程請求的平均時間
最新樣本:表示服務器響應最后一個請求的時間
偏離:服務器響應時間變化、離散程度測量值的大小,或者,換句話說,就是數據的分布。
3.4. 查看結果樹

  響應的數據展示(響應碼,響應數據),

 

通過察看結果樹,我們可以看到每個請求的結果,其中紅色的是出錯的請求,綠色的為通過。
Thread Name:線程組名稱
Sample Start: 啟動開始時間
Load time:加載時長
Latency:等待時長
Size in bytes:發送的數據總大小
Headers size in bytes:發送數據的其余部分大小
Sample Count:發送統計
Error Count:交互錯誤統計
Response code:返回碼
Response message:返回信息
Response headers:返回的頭部信息
3.5 聚合報告參數說明
lable:對應每一個http請求,顯示的是http請求的Name,如百度http請求name為baidu
#Samples:表示這一次的測試中一共發出了多少請求,如上圖所示,sougou和baidu的http請求每個都發出30個請求
Average:平均響應時間,指的是所有的請求的平均響應時間,如上圖的30個請求的總的響應時間除以30得出的平均響應時間,默認的情況下是單個請求的平均響應時間,但當使用了“事務控制器”時,則以事物為單位顯示平均響應時間
Median:中位數,也就是50%用戶的響應時間
90%Line:90%用戶的響應時間
Min:最小響應時間
Max:最大的響應時間
Error%:本次測試中出現錯誤的請求的數量/請求的總數,如上圖所示,本次的測試中,sougou的http請求66.6%的請求出錯,而baidu的請求則沒有出錯的請求
Throughput:吞吐量,默認情況下表示每秒完成的請求數,如上圖所示,每秒完成的請求數分別為6.6個每秒,6.2個每秒
Recived KB/Sec:每秒從服務器端接收到的數據量,以kb為計算的單位

3.6 圖形結果

樣本數目:總共發送到服務器的請求數。
最新樣本:代表時間的數字,是服務器響應最后一個請求的時間。
吞吐量:服務器每分鍾處理的請求數。
平均值:總運行時間除以發送到服務器的請求數。
中間值:有一半的服務器響應時間低於該值而另一半高於該值。
偏離:表示服務器響應時間變化、離散程度測量值的大小。
四.Jmeter主要組件介紹
4.1 線程組
4.2 取樣器(Http請求)

 

 4.3 監聽器

監聽器(Listener)負責收集測試結果,同時也被告知了結果顯示的方式。我們常用的包括:聚合報告、查看結果樹、用表格查看結果,都支持將結果數據寫入文件。其他的添加上去看看就行。聚合報告前面我們介紹過,后面是查看結果樹和用表格查看結果的截圖

 

 4.4.查看本地數據庫里面的數據

4.4.1打開JDBC Connection Configuration

 

 然后一次填入一下數據

Database URL:數據鏈接url,格式:jdbc:mysql://localhost:3306/host
 
注釋:數據庫的ip地址+端口/數據庫名(查詢數據庫端口號show global variables like 'port')
jdbc:mysql://127.0.0.1:3306/mydb2?serverTimezone=UTC& allowMultiQueries=true
 
JDBC Driver Class:驅動器名稱。固定:com.mysql.jdbc.Driver
 
Username:用戶名
 
Passowrd:密碼
添加一個JDBC Request。

 4.4.2 然后在添加一個JDBC Request

 

 輸入sql語句

最后的結果是 

 

 4.5 斷言---檢查點

斷言(Assertions)可以用來判斷請求響應的結果是否如用戶所期望的。它可以用來隔離問題域,即在確保功能正確的前提下執行壓力測試。這個限制對於有效的測試是非常有用的

填寫響應段言

添加JSON Assertion

 

 效果如下

 

4.6. 前置處理器和后置處理器

前置處理器(Pre Processors)和后置處理器(Post Processors)負責在生成請求之前和之后完成工作。前置處理器常常用來修改請求的設置,后置處理器則常常用來處理響應的數據。我們主要在動態關聯中用到后置處理器的正則表達式提取器

4.7.定時器

定時器(Timer)負責定義請求之間的延遲間隔
 

 

 4.8事務控制器

作用: 事務控制器會生產一個額外的采樣器,用來統計該控制器子結點的所有時間。
在線程組下創建事務控制器
參數:
·         Generate parent sample:(選中這個參數結果展示如下圖紅框,否則顯示為下圖藍框)
·         Include duration of timer and pre-post processors in generated sample:選中這一項會統計定時器(timer)的時間,否則只統計采樣器(sample)的時間
先添加一個事務控制器

 

 

勾選化框的地方

查看結果

 

 

 

 循環控制器

創建循環控制器

 

 添加要循環的次數

結果如下

 

 

五 Jmeter組件參數化
5.1參數化是什么
動態的獲取並設置數據
5.2. 為什么使用參數化
執行批量操作,批量添加批量刪除,人工效率太低
運用程序代替人工獲取並設置數據,安全高效
比如:對被測系統的用戶名和密碼進行參數化,來模擬多個用戶同時登錄系統
5.3. 參數化實現之CSV Data Set Config
 
通過這個組件可以動態獲取並設置數據,實現批量添加操作

 

 

 

 

 

 

5.4創建一個http請求

 

 

 


 效果如下

 

 

 

 

5.5使用Jmeter 函數助手
1、點擊 選項-->函數助手 調出函數助手對話框
 
  2、選擇 _CSVRead 函數(下圖第一個框)
 
  3、函數參數:
 
    1)第一個參數:填寫文件路徑。
 
    2)第二個參數:文件列號是從0開始的,第一列0、第二列1、第三列2、依次類推,然后點擊【生成】按鈕,則會自動生成我們需要的參數化函數。
 
3) 復制生成的參數化函數, copy過程需要使用的地方即可。
4) _Random函數是從某數據段隨機讀取數據替換參數,當需要添加多條數據記錄且某些字段需要唯一性時使用。

 

 

 

 

 

 

 

 運行及運行結果

 

 

 

 

 

 5.6 正則參數化

 先添加兩個http請求

 

 一個是成語詞典一個是新華字典

 

 

 

 

 

 

 

 然后在成語詞典里添加一個正則表達式提取器

 

 在正則表達式提取器中添加數據

 

 

說明:
(1)引用名稱:下一個請求要引用的參數名稱,如填寫title,則可用${title}引用它。
(2)正則表達式:
():括起來的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:不要太貪婪,在找到第一個匹配項后停止。
(3)模板:用$$引用起來,如果在正則表達式中有多個正則表達式,則可以是$2$$3$等等,表示解析到的第幾個值給title。如:$1$表示解析到的第1個值
(4)匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0
(5)缺省值:如果參數沒有取得到值,那默認給一個值讓它取。

修改新華字典里的參數

 

 然后運行及效果圖展示

 

 

 

 

 

六  Jmeter腳本錄制
6.1. 什么是腳本錄制
在進行測試的時候,可能有好多腳本或者界面需要操作測試,並且有些測試鏈接需要重復多線程高並發進行測試,我們一般會針對這一些操作,進行一個腳本錄制,錄制好之后,之后測試就可以在這個基礎上進行測試。
6.2. Jemeter腳本錄制方式
BadBoy腳本錄制
使用Jmeter自帶的代理服務器進行腳本錄制
安裝badbay

 打開badbay

 

 最后完畢之后點擊小紅點

 

 

 然后點擊文件Export to Jmeter

 

 然后在jmeter里文件打開剛剛保存的腳本

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM