程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 如何使用JMeter測試Java項目

如何使用JMeter測試Java項目

編輯:關於JAVA

一、 apache JMeter工具

  1)簡介

  JMeter——一個100%的純Java桌面應用,它是 apache組織的開放源代碼項目,它是功能和性能測試的工具。JMeter可以用於測試靜態或者動態資源的性能(文件、Servlets、Perl腳本、Java對象、數據庫和查詢、FTP服務器或者其他資源)。

  2)Jmeter的下載地址:http://jakarta.apache.org/jmeter/usermanual/index.Html

  3)apache JMeter 的特性:

  a) 能夠對HTTP和FTP服務器進行壓力和性能測試, 也可以對任何數據庫進行同樣的測試(通過JDBC)。

  b) 完全的可移植性和100% 純Java。

  c) 完全 Swing 和輕量組件支持(預編譯的JAR使用 Javax.swing.*)包。

  d) 完全多線程 框架允許通過多個線程並發取樣和 通過單獨的線程組對不同的功能同時取樣。

  e) 精心的GUI設計允許快速操作和更精確的計時。

  f) 緩存和離線分析/回放測試結果。

  g) 高可擴展性:

  h) 可鏈接的取樣器允許無限制的測試能力。

  i) 各種負載統計表和可鏈接的計時器可供選擇。

  j) 數據分析和可視化插件提供了很好的可擴展性以及 以及個性化。

  k) 具有提供動態輸入到測試的功能(包括Javascrīpt)。

  l) 支持腳本變成的取樣器(在1.9.2及以上版本支持BeanShell)。

  二、 JMeter可以做哪些方面的測試

  原先Jemer是為Web/HTTP測試而設計的,但是它已經擴展以支持各種各樣的測試模塊。它和用於HTTP和SQL數據庫(使用JDBC)的模塊一起運送。它可以用來測試靜止資料庫或者活動資料庫中的服務器的運行情況,可以用來模擬對服務器或者網絡系統加以重負荷以測試它的抵抗力,或者用來分析不同負荷類型下的所有運行情況。它也提供了一個可替換的界面用來定制數據顯示,測試同步及測試的創建和執行。

  三、具體事例

  1)測試環境:

  硬件配置 軟件環境

  測試時間 2004 年 5 月 25 日

  服務器 P4 512M 內存 Oracle 10g+Tomcat5.5

  客戶端 P4 512M 內存 Jmeter

  測試內容 khxx_xg.JSP 接受用戶參數、調用 Javabean 、輸出相關信息。

  2)安裝啟動JMeter

  請將下載的.zip文件解壓縮到C:/JMeter目錄下。現在,請使用C:/JMeter/bin下面的jmeter.bat批處理文件來啟動JMeter的可視化界面,下面的工作都將在這個可視化界面界面上進行操作。圖1就是Jmeter的可視化界面。

以下為我的測試計劃的內容:

  1、右鍵單擊測試計劃,選擇添加-〉線程組

  在線程組裡設置負載信息,即線程屬性。我向測試計劃中增加相關負載設置是Jmeter需要模擬十個請求者,每個請求者在測試過程中並發請求,並且連續請求10次。

  線程數: 10

  Ramp-up period(inseconds): 0

  循環次數: 10

  說明:線程數代表發送請求的用戶數目,Ramp-up period(inseconds)代表每個請求發生的總時間間隔,單位是秒。假如我的請求數目是5,而這個參數是10,那麼每個請求之間的間隔就是10/5,也就是2秒。如果設置為0就代表並發請求。Loop Count代表請求發生的重復次數,如果選擇後面的forever(默認),那麼 請求將一直繼續,如果不選擇forever,而在輸入框中輸入數字,那麼請求將重復 指定的次數,如果輸入0,那麼請求將執行一次。

  2、添加HTTP默認請求值

  右鍵單擊線程組,選擇添加-〉配置元件-〉HTTP默認請求值,以下是我設置的信息:

  說明

  名稱: HTTP 默認請求值 該元素的名稱

  服務器名稱或IP:

  localhost 被測試服務器的 IP或者名字

  端口號: 8080 服務器提供服務的端口號,我用的服務器是 Tomcat,所以端口號是8080

  協議: http 發送測試請求時使用的協議

  路徑: /hrbin/hg_admin/khxx_xg.JSP 默認的起始位置。

   3、添加HTTP請求

  右鍵單擊線程組,選擇添加-〉Sampler-〉HTTP請求,以下是我設置的信息

  說明

  名稱: HTTP 默認請求值 該元素的名稱

  服務器名稱或IP:

  localhost 被測試服務器的IP或者名字

  端口號: 8080 服務器提供服務的端口號,我用的服務器是Tomcat,所以端口號是8080

  協議: http 發送測試請求時使用的協議

  路徑: /hrbin/hg_admin/khxx_xg.JSP 默認的起始位置。

  因為我測試的是查詢,故添加了一個同請求一起發送的參數(in_id=dsgds):

   4、添加監聽器,存放測試結果。

  右鍵單擊測試計劃,選擇測試計劃-〉添加-〉監聽器-〉聚合報告

  你也可以選擇用表格查看結果、圖形結果、查看結果樹等。

  4)運行測試

  單擊運行,選擇啟動。

四、 測試結果的分析說明

  說明:

  Label: 每個 JMeter 的 element (例如 HTTP Request )都有一個 Name 屬性,這裡顯示的就是 Name 屬性的值

  #Samples: 表示你這次測試中一共發出了多少個請求,我的測試計劃模擬 10 個用戶,每個用戶迭代 10 次,因此這裡顯示 100

  Average: 平均響應時間 —— 默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以 Transaction 為單位顯示平均響應時間

  Median: 中位數,也就是 50 %用戶的響應時間

  90% Line: 90 %用戶的響應時間

  Min: 最小響應時間

  Max: 最大響應時間

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

  Throughput: 吞吐量 —— 默認情況下表示每秒完成的請求數( Request per Second ),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數

  KB/Sec: 每秒從服務器端接收到的數據量,相當於 LoadRunner 中的 Throughput/Sec

  我分別模擬10、25、50、75和100個用戶並發訪問該頁面,根據報告所得測試結果作出如下統計。注:時間單位是ms

  

  用戶數 #Samples Average Median 90%Line Min Max Error% Throughput KB/Sec

  10 642 672 688 125 125 719 00.0 14.8/sec 221.15

  25 250 1620 1687 1750 250 1781 00.0 14.5/sec 217.14

  50 500 3319 3438 3578 281 3657 00.0 14.2/sec 212.02

  75 750 4887 5109 5584 328 7094 00.0 14.5/sec 216.67

  100 1000 6244 6485 6672 250 6844 00.0 15.1/sec 225.43

  一般情況下,當用戶能夠在2秒以內得到響應時,會感覺系統的響應很快;當用戶在2-5秒之間得到響應時,會感覺系統的響應速度還可以;當用戶在5-10秒以內得到響應時,會感覺系統的響應速度很慢,但是還可以接受;而當用戶在超過10秒後仍然無法得到響應時,會感覺系統糟透了,或者認為系統已經失去響應,而選擇離開這個Web站點,或者發起第二次請求。故該系統的用戶信息查詢信息頁面的在10到25人並發訪問時,系統響應速度很快,25人到50人並發訪問時速度還可以,50人到100人並發訪問就比較慢了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved