Jmeter接口測試與性能測試

🍅?點擊文末小卡片?,免費獲取軟件測試全套資料,資料在手,漲薪更快

目前最新版本發展到5.0版本,需要Java7以上版本環境,下載解壓目錄后,進入\apache-jmeter-5.0\bin\,雙擊ApacheJMeter.jar文件啟動JMemter。

JMeter接口測試

1、創建測試任務

添加線程組,右擊測試計劃,在快捷菜單單擊添加-》線程(用戶)-》線程組。設置線程組主要包含三個參數:線程數、Ramp-Up、循環次數。

線程數:設置虛擬用戶數。一個虛擬用戶占用一個進程或線程。線程數就相當于虛擬用戶數。

Ramp-Up:設置的線程數啟動時長,單位為秒。如果線程數為100,準備時長為20秒,那么需要20秒啟動100個線程,平均每秒啟動5個線程。

循環次數:每個線程發送請求的個數。如果線程數為100,循環次數為2,那么每個線程發送2次請求,總請求數為100*2=200次。如果勾選了“永遠”復選框,那么所有線程會循環發送請求,直到手動單工具欄停止按鈕,或者設置的線程運行時間結束才會停止運行。

這次針對接口測試,默認都為1就行。

2、添加get的HTTP請求

右擊線路組,在快捷菜單單擊添加-》取樣器-》HTTP請求。

?協議:向目標服務器發送HTTP請求時的協議,可以是HTTP或HTTPS,默認不填為HTTP。

服務器IP和端口:輸入目標服務器地址和端口號。

內容編碼:默認值為iso8859

方法:針對請求方法選擇

路徑:輸入請求目標地址

參數:錄入查詢的參數數值

3、添加post的HTTP請求

方法同上,只是請求方法不同,這次改用POST傳遞參數向服務器及POST請求的URL地址。

?根據開發提供的接口文檔,參考傳入參數選項,錄入進去。

4、添加斷言

分別右擊發布會查詢信息和添加發布會信息,添加-》斷言-》響應斷言

這次選擇響應文,然后錄入需要匹配的數據。

?5、添加察看結果樹

右擊發布系統項目,單擊添加-》監聽器-》察看結果樹,運行后:

?成功顯示綠色標志,失敗顯示紅色標示,可以查看到每個用例返回的數據。

6、添加用表格察看結果

?可以更詳細查看到耗時及字節大小,結果狀態,用例信息。

JMeter性能測試

由于JMeter支持錄制不夠好,現在常用的方法是使用Badboy錄制,生成JMeter腳本,然后用JMeter打開,添加監聽器來查看結果。

雙擊軟件圖標開啟badboy即可看到以下界面:

1、開始錄制

在地址欄(圖中用紅色框住部分)中輸入你需要錄制的Web應用的URL,并點擊紅圓點按鈕開始錄制。開始錄制后,你可以直接在Badboy內嵌的瀏覽器(主界面的右側)中對被測Web應用進行操作,所有的操作都會被記錄在主界面左側的編輯窗口中:如下圖所示

?將腳本導出為jmeter

?線程數代表發送請求的用戶數目,Ramp-up period(inseconds)代表每個請求發生的總時間間隔,單位是秒。假如我的請求數目是5,而Ramp-up period(inseconds)參數是10,那么每個請求之間的間隔就是 10/5,也就是2秒。如果Ramp-up period(inseconds)設置為0就代表并發請求。

最后,清除循環次數的復選項“永遠”,然后輸入1。這個值是告訴JMeter你的測試重復多少次。如果你輸入1,那么JMeter只會運行一次測試。要不停的運行你的測試計劃,選中“永遠”復選框。

如下圖摸擬1000個并發用戶數量運行一次登錄測試。

?2、添加監控

這個主要是用來查看測試結果用的,可以以不同形式展現,這里舉例說明添加監聽器:用表格查看結果、聚合報告和圖形報告thread Group->添加->監聽器->聚合報告(圖形報告、用表格查看結果)如下圖所示:

?程序運行完成以后,就可以查看相應的測試結果這里以1000個線程組瞬時并發為例得到如下報告:

?上圖表參數含義如下:

1、樣本數目是總共發送到服務器的請求數。
2、最新樣本是代表時間的數字,是服務器響應最后一個請求的時間。
3、吞吐量是服務器每分鐘處理的請求數。?
4、平均值是總運行時間除以發送到服務器的請求數。?
5、中間值是代表時間的數字,有一半的服務器響應時間低于該值,而另一半高于該值。?
6、偏離表示服務器響應時間變化、離散程度測量值的大小,或者,換句話說,就是數據的分布。

可以看出當1000人瞬時并發時平均響應時間為1630ms,吞吐量為3,940.887/分鐘,平均響應中值為230ms。

?圖表含義說明如下:

Label:說明是請求類型,如Http,FTP等請求。

#Samples:也就是圖形報表中的樣本數目,總共發送到服務器的樣本數目。

Average:也就是圖形報表中的平均響應時間,是總運行時間除以發送到服務器的請求數。

Median:也就是圖形報表中的中間值50%用戶響應時間,有一半的服務器響應時間低于該值而另一半高于該值。

90%line:是指90%請求的響應時間比所得數值還要小,也就是90%用戶的響應時間。

Min:是代表時間的數字,是服務器響應的最小時間。

Max: 是代表時間的數字,是服務器響應的最大時間。

Error%:請求的錯誤百分比。本次測試中出現錯誤的請求的數量/請求的總數。

Throughput:也就是圖形報表中的吞吐量,這里是服務器每單位時間處理的請求數,注意查看是秒或是分鐘。默認情況下表示每秒完成的請求數。

KB/sec:每秒從服務器端接收到的數據量。

要所得的數據為正確,聚合報告error%必須為0.00%,否則說明用戶沒有全部通過測試,這里得到平均響應時間1630ms,平均響應中中值為230ms

上圖Error出現錯誤,所得的數據不是準確,從日志和表格來看中間過程發生連接請求超時,在響應時間內,接收請求數響應時間為0。如下圖所示:

?在測試過程中,平均響應時間、吞吐量、并發連接數是我們性能測試的一個重要衡量指標,但是在測試中,特別是在聚合報告中,得出的90%Line等同于該用戶提出的90%響應時間,這個數值對我們性能測試分析也很有參考價值。90%響應時間是說在發送的請求中,90%的用戶響應時間都比得到的數值上要短,同時說明,一個系統在應用時,90%的用戶響應時間都能達到這個數值,那么就為系統性能分析提供了很好的參考價值。

如果把線程數改為500并發連接請求,結果Error不會出現錯誤,所得到性能測試數據準確。

?總之,需要不斷的調優對比數據,接近最佳狀態,確定負載達到多少并發數量。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業,一定要提升技術功底。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85217.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85217.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85217.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何利用大模型搭建本地知識庫

要利用大模型搭建本地知識庫,核心在于:構建高質量知識內容源、使用向量化技術實現語義檢索、部署大語言模型以實現自然語言問答接口、設計本地知識庫的數據更新機制、注重隱私與合規性控制。其中,使用向量化技術實現語義檢索至關重要&#xf…

vscode連接不上服務器問題修復

原因:運維人員修復漏洞,升級了服務器openssh版本,導致無法新建連接連上vscode 操作: 1.刪除云桌面上C:\Users\.ssh 路徑下known_hosts文件; 2.設置免密登錄 1)執行 ssh-keygen -t rsa -C "your_em…

架構優化——submodule轉為subtree

文章目錄 背景subtree優勢submodule切換到subtree腳本subtree使用切開發分支推送代碼同步代碼 背景 submodule過多,目前20個submodule需要切出20個分支,查看提交記錄、切分支等使用起來麻煩。 團隊深受困擾! subtree優勢 繼承submodule的…

車載軟件架構 --- 汽車中央控制單元HPC軟件架構方案實例

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

零基礎開始的網工之路第二十一天------性能優化

目錄 一、性能優化概述 二、性能監控工具 1. 基礎工具 2. 高級工具 三、子系統優化策略 1. CPU優化 2. 內存優化 3. 磁盤I/O優化 4. 網絡優化 四、資源限制優化 1. ulimit 2. cgroups(控制組) 五、安全與注意事項 六、綜合案例 案例1&…

【Google Chrome】谷歌瀏覽器歷史版本下載

最新版: Chrome for Testing availability 谷歌瀏覽器 Chrome 最新版離線安裝包下載地址 v137.0.7151.104 - 每日自動更新 | 異次元軟件 歷史版本: Download Google Chrome 105.0.5195.102 for Windows - Filehippo.com chrome瀏覽器,chrome插件,谷…

線性表實訓(頭歌實踐平臺課程答案詳細解說)

C 和 C 支持 4 種基本數據類型(整型、浮點型、字符型、布爾型)和 3 種復合型數據類型(數組、指針、結構)。復合類型的數據對于數據結構至關重要,因為從某種程度上來說數據量的多少和數據結構的好壞決定了程序的復雜程度…

【前端】threeJS學習(長期更新)

簡介 Three.js是用JavaScript編寫的第三方庫,用于實現3D功能,基于WebGL進行封裝。 一個3D模型的建立主要由以下幾個部分組成(基本版): * 創建場景scene--相機camera--渲染器renderer--(燈光light); *…

Linux系統--權限

大家好,上一次我們學習了關于Linux中的基礎指令,那么我們今天來繼續學習Linux的新的內容:權限。那么話不多說,我們開始今天的學習: 目錄 Linux權限 1. Linux權限的概念 2. Linux權限管理 3. ?件權限值的表??法…

論文筆記 <交通燈> <多智能體>DERLight雙重經驗回放燈機制

今天看的論文是這篇 主要提出了傳統優先級經驗回放(PER)在復雜交通場景中效率低下,使用二叉樹存儲樣本,導致大規模樣本時計算復雜度高。而且不丟棄樣本,造成存儲空間浪費。 雙重經驗池: 為了解決以上問題…

Chromium 136 編譯指南 macOS篇:環境準備與系統配置(一)

1. 引言 在瀏覽器技術的星空中,Chromium 猶如一顆最亮的明星,照亮了整個互聯網的發展軌跡。作為推動現代 Web 技術革命的核心引擎,Chromium 不僅是 Google Chrome 的技術基石,更是 Microsoft Edge、Opera、以及眾多定制瀏覽器的共…

linux機器間無密碼如何傳輸文件

1. scp傳輸時的問題 $ scp deepseek_r1_distill_qwen1.5b_content_audit_fp16_20250613_2_Q4_K_M.gguf xxx192.168.xxx:/home/xxx/pretrained_model/output The authenticity of host 192.168.xxx (192.168.xxx) cant be established. ED25519 key fingerprint is SHA256:deOs…

PySpark 使用pyarrow指定版本

背景說明 在 PySpark 3.1.3 環境中,當需要使用與集群環境不同版本的 PyArrow (如 1.0.0 版本)時,可以通過以下方法實現,而無需更改集群環境配置 完整操作說明 去pyarrowPyPI下載對應版本的whl文件后綴whl直接改成zip解壓后有兩個文件夾&am…

安卓APP投屏調試工具使用教程

安卓APP投屏調試工具使用教程 一、準備工作(一)下載ADB工具(二)配置ADB的環境變量(三)檢查是否成功安裝(四)adb核心命令說明 二、無線調試流程(一)環境要求&a…

huggingface網站里的模型和數據集

直接下載肯定是不太行,平時訪問都不容易,更別提下載東西了,但是我們可以通過國內鏡像進行快速下載。 鏡像網址: hf-mirror地址:HF-Mirror 進入網站之后,在搜索框里搜索你想下載的內容,接下來…

Node.js 路由請求方式大全解:深度剖析與工程實踐

文章目錄 🌐 Node.js 路由請求方式大全解:深度剖析與工程實踐一、📜 HTTP 請求方法全景圖🏆 核心方法深度對比HTTP 請求方法概念對比表🛠? 特殊方法應用場景 二、🎨 各方法深度解析1. GET - 數據查看器&am…

JS-實現一個鏈式調用工具庫

要求: 支持鏈式調用,如:_chain(data).map().filter().value()實現map、filter、等常用方法支持惰性求值(延遲執行、直到用到value()時才真正計算)。 鏈式調用的實現原理的關鍵點是:函數執行完以后&#x…

【人工智能數學基礎】實變函數與泛函分析

數學分析、解析幾何、高等代數、實變函數、常微分方程、近世代數、微分幾何、復變函數、點集拓撲、概率論、數理統計、數理邏輯、偏微分方程、泛函分析、動力系統、數學物理方程、數論導引、群與代數表示、微分流形、代數拓撲、代數幾何、金融數學、多元統計分析、應用隨機過程…

css3 背景色漸變

在 CSS 中,使用漸變色需要用到 gradient 屬性,而 gradient 屬性分為 線性漸變 linear-gradient 與 徑向漸變 radial-gradient。今天主要是說一下 linear-gradient 線性漸變屬性。 例如:background: linear-gradient(90deg, #e7f1fc, #f5f9fb…

將圖片合成為視頻(基于 OpenCV)

本文將介紹如何使用 Python 和 OpenCV 將一組圖像文件合成為一個視頻文件。你將學會: 使用 os 模塊遍歷文件夾中的圖像 使用 cv2.VideoWriter 寫入視頻 設置分辨率與幀率參數 對圖像尺寸進行統一處理 簡單的視頻生成應用開發 1. 所需模塊與安裝 本章需要以下 …