1. 程式人生 > >使用Jmeter進行http接口做功能、性能測試

使用Jmeter進行http接口做功能、性能測試

時延 ive clas stat 時長 菜單 sample ati ron

在測試移動APP時,會有很多接口需要做測試,我在這裏介紹一下對HTTP接口做功能、性能的測試。首先我們會從開發人員拿到接口數據。

一、測試需求描述

1、 本次測試的接口為http服務端接口

2、 接口:查詢功能接口

3、接口描述:用戶對訂單列表進行查詢

IP:http://192.168.8.197/biz/api/v1/mobile/doctor/subscribe/orderList

請求方式:get

端口號:9090

請求頭參數:token = ffb74003075c4094853c98bfcfd081b7

請求參數:stateType = ALL , beginLine = 1

響應數據:顯示所有訂單的詳情信息

二、使用Jmeter部署環境

1、首先打開Jmeter,在測試計劃下添加線程組。

技術分享

2.在線程組下添加HTTP信息頭管理器,如果接口沒有請求頭參數,就可以不加。

技術分享

3.在線程組下添加HTTP請求。

技術分享

4.在HTTP請求下添加察看結果數

技術分享

5.在HTTP請求下添加聚合報告

技術分享

三,部署完成後,開始填入數據進行測試

1、首先填寫HTTP信息頭管理器,點擊添加,把請求頭參數:token = ffb74003075c4094853c98bfcfd081b7填入進去。

技術分享

2、填寫HTTP請求,點擊添加,把請求參數:stateType = ALL , beginLine = 1填入進去。

協議:http

IP:192.168.8.197

端口號:9090

請求方式:get

路徑:/biz/api/v1/mobile/doctor/subscribe/orderList

技術分享

3、設置線程組,根據測試需求來設置。我們這裏設置的是10個虛擬用戶,循環1次。技術分享

在這裏詳情解說一下線程組設置:

(1)線程數:即用戶數,一個虛擬用戶占用一個進程或線程,需要多少個用戶施壓,就設置多少虛擬用戶數,在這裏就是設置多少個線程數。

(2)Ramp-Up Period(in seconds)準備時長:設置的虛擬用戶數需要在多長時間內全部啟動。例如線程數為100,準備時長為10,那麽需要10秒鐘啟動100個線程,也就是每秒鐘啟動10個線程。我們這裏設置1秒,表示1秒內10個用戶全部啟動。

(3)循環次數:每個線程發送請求的次數。例如線程數為10,循環次數為10,那麽每個線程發送10次請求,則總請求數為10*10=100 。如果勾選了“永遠”,那麽所有線程會一直發送請求,直到選擇停止運行腳本。

(4)Delay Thread creation until needed:直到需要時延遲線程的創建。

(5)調度器:可以設置線程組的持續時間或啟動時間和結束時間。

當選用配置調度器時,需要設置循環次數為永遠,防止因循環次數不夠而終止壓測。

持續時間(秒):測試計劃持續多長時間,例如1分鐘就填寫60,會覆蓋結束時間。

啟動時間:測試計劃什麽時候啟動,啟動延遲會覆蓋它。當啟動時間已過,手動運行腳本時當前時間也會覆蓋它(但啟動時間頁面顯示不會變)。

結束時間:測試計劃什麽時候結束,持續時間會覆蓋它。

啟動延遲(秒):測試計劃延遲多長時間啟動,會覆蓋啟動時間。

4、全部都設置好了就可以點擊綠色箭頭運行了,或者點擊“運行”菜單欄的“啟動”列表。運行完成後,我們來看看查看結果數。點擊響應數據查看返回數據是否和研發部編寫的一致。

技術分享

5、請求都成功後,我們來看看聚合報告,這個數據就是我們的測試結果了。

技術分享

6、我們這裏解說一下聚合報告各參數的值,主要是查看Average和Throughput的值。

(1)Label:請求對應的name屬性值

(2)Samples:表示這次測試中一共發出了多少個請求,我們這裏是模擬10個用戶,每個用戶叠代1次,那麽這裏顯示10。

(3)Average:單個 Request 的平均響應時間。

(4)Median:中位數, 50% 用戶的響應時間

(5)90% Line:90% 用戶的響應時間

(6)95% Line:95% 用戶的響應時間

(7)99% Line:99% 用戶的響應時間

(8)Min:最小響應時間

(9)Max:最大響應時間

(10)Error%:本次測試中出現錯誤的請求的數量/請求的總數

(11)Throughput:吞吐量,表示每秒完成的請求數

(12)Received KB/Sec:每秒從服務器端接收到的數據量

(13)Sent KB/Sec:每秒從服務器端發送的數據量

使用Jmeter進行http接口做功能、性能測試