jmeter基本使用及基於jmeter的數據驗證


 

一、工具介紹

Jmeter是一款使用Java開發的,開源免費的,測試工具,主要用來做功能測試和性能測試。JMeter 用於模擬在服務器、網絡或者其他對象上附加高負載以測試他們提供服務的受壓能力,或者分析他們提供的服務在不同負載條件下的性能情況。

二、常用組件介紹

2.1 測試計划(Test Plan)

是使用 JMeter 進行測試的起點,它是其它 JMeter 測試元件的容器。

默認打開時候就存在了,可以自定義容器的名稱。

 

2.2 線程組(Thread Group)

代表一定數量的並發用戶,它可以用來模擬並發用戶發送請求。

 

相關參數說明:

名稱:為線程組起名字。

線程屬性-線程數:設置發送請求的用戶數目 ,即並發數,上圖為100個。

線程屬性-Ramp-Up Period(in second):線程間的時間間隔,單位是秒。即所有線程在多少時間內啟動。

線程屬性-循環次數:請求的重復次數,如果選擇后面的forever(默認),那么 請求將一直繼續,如果不選擇forever,而在輸入框中輸入數字,那么請求將重復指定的次數。

 

2.3 取樣器(sampler)

定義實際的請求內容,被線程組包含,主要用HTTP請求。

 

相關參數說明:

名稱:HTTP請求的名字。

Web服務器-服務器名稱或IP、端口號、HTTP請求,腳本錄制時自動添加。

也可以手動輸入。

2.4 監聽器(Listener)

常用的包括:聚合報告、查看結果樹、用表格查看結果,都支持將結果數據寫入文件。

結果樹可以用於查看請求的狀態,返回值等內容

聚合報告可以用於查看請求相應時間,發送、接受字節大小等數據

2.5 邏輯控制器(Logic Controller)

邏輯控制器可以自定義JMeter發送請求的行為邏輯,它與Sampler結合使用可以模擬復雜的請求序列。常用的場景就是一個用戶登陸之后,保持登陸狀態,循環的做同樣的報錯(保存數據,查看數據,指定條件查詢等)

上圖的例子就是表示用10個並發用戶,登錄后通過循環控制器,分別執行100次保存交易及提交審批的操作。

 

 

2.6 斷言(Assertions)

可以用來判斷請求響應的結果是否如用戶預期。這個可以判斷請求是否成功,隔離失敗請求。

 

目前用過的有響應斷言。

2.7 前置處理器(Pre Processors)和后置處理器(Post Processors)

前置處理器(Pre Processors)和后置處理器(Post Processors)負責在生成請求之前和之后完成工作。

前置處理器常常用來修改請求的設置,后置處理器則常常用來處理響應的數據。

我們主要在動態關聯中用到后置處理器的正則表達式提取器,后面的例子會列舉。

 

2.8 定時器(Timer)

定時器(Timer)負責定義請求之間的延遲間隔(相當於loadrunner的思考時間)。

 

 

三、腳本錄制

3.1 添加代理

添加組件>>代理服務器

 

 

3.2 本地設置代理

以Google Chrome為例

 

設置完成后,使用Google Chrome 訪問指定地址,相關請求就會全部錄制下來

注意,這里錄制的腳本是每一次請求的,包括獲取所有的圖片,js,html網頁資源,都會包括在里面,可以在代理界面對錄制的請求做一次過濾

排除模式里面添加 .*\.(js|css|PNG|jpg|ico|png|gif).*

四、腳本優化

以登錄保存一筆交易為例,現在來調整腳本。

4.1 刪除多余腳本腳本

以下為刪除后的腳本記錄

4.2 調整名字

 

4.3 獲取Session ID並使用

獲取登錄的Session ID,並添加cookies管理器,統一使用

查看結果樹,需要提取對應的session

 

登錄的請求下添加正則表達式提取

 

添加 cookie 管理器,並獲取session變量

 

 

 

 

 

如果成功了,可以用結果樹查看

 

4.4 獲取業務ID並使用

以這次的用戶為例,保存生成的交易ID需要在提交審批時候使用,這里還需要將保存請求里面的返回ID,作為提交審批里面的參數使用

首先,查看結果樹里面的保存響應數據,以及提交審批的請求數據。

 

所以需要提取保存請求響應數據的approve id,作為提交審批中的serial_no

 

 

 

 

綜上所述,了解這些內容之后,就可以做一些接口級的並發測試了。

 

五、基於jmeter數據驗證

這是基於外匯交易系統經常需要測試相同數據出的會計分錄,頭寸,台賬內容是否符合預期的場景,想到一個測試思路。每一次更新代碼,都需要檢查,審核產生的數據,需求滅有變化的情況下,這個回歸的流程都是一致的。

首先得指定一個測試庫,不斷的清庫,修改系統日期(后者更為方便),以即期為例,維護一遍即期交易,保存提交審批並審批完成后,繼續清算初審、復審,流程完成之后,會生成對應的台賬、頭寸、分錄數據,將這個主要流程錄制為jmeter腳本。

后續分別去訪問這些節點(分別對應不同的請求),根據返回值的斷言,來判斷結果是否符合我們的預期,來判斷新一輪的程序調整是否有問題。

 


免責聲明!

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



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