jmeter APP接口壓力測試


 

 

第一步:獲取開發文檔,了解接口地址和參數名

第二步:jmeter中添加需要測試的接口

a.設計APP的接口框架:

b.http請求默認值設置如下:

 

  •  c.接口中應需要用到sign字段,加密字符串與時間戳,所以需要自己編寫加密的代碼。

在eclipse中編寫需要加密的代碼,調試成功后,在elipse中到處jar包

將導出的jar放到Jmeter安裝目錄下的lib文件夾下;

因為sign字段是由:時間戳+$+key加密而成,所以我們先需要獲取時間戳:

因為所有接口中的sign規則相同,所以將需要的3個字段在測試計划中添加即可

 

 添加完成后,在jmeter中添加beanshell Sampler,導入該jar包,將需要的字符串引用該方法即可,首先定義各個字符串,將字符串拼接后引用加密的方法,加密后的字符存到sign1中,設計如下:

 

在接口中引用該sign1字段:

 d.接口的請求參數值需要從數據庫中隨機獲取,那么設計如下:

添加JDBC Connection Configuration設置

 

 再添加JDBC Request,首先需要將JDBC Connection Configuration中的與jdbc Request中的

設置相同;然后將從數據庫中獲取需要的參數值,將所有的數據存儲到result對象中,

 

在BeanShell中獲取存儲id值的對象,並隨機讀取

 

 在請求參數中引用,sign與times獲取方式如上設置一致,id的字段即從數據庫中隨機獲取的值;

調試無問題后,設置查看結果:

 

 監控測試的服務器需要用PMC

在測試服務器中加入

在測試服務器中linux服務器上首先將startAgent.sh設定為可執行文件:

chmod 777 startAgent.sh
./startAgent.sh執行文件
如果要將該文件設置為后台執行不關閉
Nohup ./startAgent.sh &

啟動服務后,再進行壓力測試。

因為壓力測試,需要分布式壓力測試:

 

e.點擊“全程啟動”進行壓力測試,再對結果進行分析:

聚合報告分析

  • Label:httpRequest name屬性值。
  • Samples:測試的過程中一共發出了多少個請求即總線程數,(如果模擬10個用戶,每個用戶迭代10次,這里就顯示100),對應圖形報表中的樣本數目。
  • Average:單個Request的平均響應時間,計算方法是總運行時間除以發送到服務器的總請求數,對應圖形報表中的平均值。
  • Median:50%用戶的響應時間。
  • 90%Line:90%用戶的響應時間。
  • Min:服務器響應的最短時間。
  • Max:服務器響應的最長時間。
  • Error%:本次測試中出錯率,請求的數量/請求的總數。
  • Throughput:吞吐量,默認情況下表示每秒完成的請求數。
  • KB/Sec:每秒從服務器接收到的數據量,即每秒鍾請求的字節數,時間單位均為ms。

 根據聚合報告以及圖形結果各項參數指標分析 
(1)每間隔一秒鍾並發的線程數越多,接口99%Line參數值先增加后減小,多少個線程時基本達到峰值; 
(2)每間隔一秒鍾並發的線程數越多,吞吐量先減后增,每秒鍾完成的請求數減幅較大。 
 據圖形結果分析 
(1)隨着發送到服務器的請求數越來越多,偏離數量越來越大,服務器越來越不穩定; 
(2)發送到服務器的請求數增加,吞吐量(即服務器每分鍾處理的服務器的請求)先減少后增加。 

一般情況下,當用戶能夠在2秒以內得到響應時,會感覺系統的響應很快;當用戶在2-5秒之間 
得到響應時,會感覺系統的響應速度還可以;當用戶在5-10秒以內得到響應時,會感覺系統的 
響應速度很慢,但是還可以接受;而當用戶在超過10秒后仍然無法得到響應時,會感覺系統糟 
透了,或者認為系統已經失去響應,而選擇離開這個Web站點,或者發起第二次請求。


免責聲明!

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



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