您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
JMeter測試WEB性能入門
作者:白灰 發(fā)布時間:[ 2017/6/28 10:09:44 ] 推薦標簽:性能測試 性能測試工具 單元測試

  一.JMeter介紹
  1.Apache JMeter是什么
  Apache JMeter 是Apache組織的開放源代碼項目,是一個純Java桌面應用,用于壓力測試和性能測量。它初被設計用于Web應用測試但后來擴展到其它測試領域。Apache JMeter可以用于對靜態(tài)的和動態(tài)的資源(文件,Servlet,Perl腳本,Java對象,數(shù)據(jù)庫和查詢,F(xiàn)TP服務器或是其它資源)的性能進行測試。JMeter可以用于在服務器,網(wǎng)絡或對象模擬繁重的負載來測試它們提供服務的受壓能力或者分析不同壓力條件下的總體性能情況。你可以使用JMeter提供的圖形化界面,分析性能指標或者在高負載情況下測試你的服務器/腳本/對象。
  2.Apache JMeter能做什么
  1.能夠對HTTP和FTP服務器進行壓力和性能測試,也可以對任何數(shù)據(jù)庫進行同樣的測試
  2.完全的可移植性和純Java
  3.完全Swing的輕量級組件支持
  4.完全多線程框架允許通過多個線程并發(fā)取樣和通過單獨的線程組對不同的功能同時取樣
  5.精心的GUI設計允許快速操作和更精確的計時
  6.緩存和離線分析/回放測試結果
  7.高可擴展性:
  可鏈接的取樣器允許無限制的測試能力
  各種負載統(tǒng)計表和可鏈接的計時器可供選擇
  數(shù)據(jù)分析和可視化插件提供了很好的可擴展性以及個性化
  具有提供動態(tài)輸入到測試的功能
  支持腳本變成的取樣器
  二.JMeter安裝
  1.安裝環(huán)境
  1.操作系統(tǒng):window  xp  7  8
  2.安裝包準備:
  新的JMeter下載地址
  http://apache.dataguru.cn//JMeter/binaries/apache-JMeter-2.13.tgz
  Jdk根據(jù)不同的操作系統(tǒng)選擇jdk版本
  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  2.安裝過程
  1.安裝JDK ,如我安裝的地址為:C:Program Files (x86)Javajdk1.8.0_45
  2.設置環(huán)境變量:
  i 在用戶變量中,新建變量名“JAVA_HOME”,變量值為:安裝JDK的目錄,如我的為:“C:Program Files (x86)Javajdk1.8.0_45;”
  ii 再新建變量名為“CLASSPATH”,變量值為:
  “.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;;”       
  iii 在系統(tǒng)變量的“Path”變量值后加上:“%JAVA_HOME%/bin;”
  3.安裝JMeter,解壓“jakarta-JMeter-2.13.zip”到E盤根目錄下:“E:/jakarta-JMeter-2.13”
  4.在系統(tǒng)的CMD命令提示符下輸入"java",能看到相應幫助信息,說明jdk安裝成功
  5.運行JMeter: 直接打開 E:/jakarta-JMeter-2.13/bin/JMeter.bat 即可
  三.JMeter頁面和主要測試組件
  測試計劃(Test Plan ):
  用來描述一個性能測試,包含與本次性能測試所有相關的功能。也說本的性能測試的所有內容是于基于一個計劃的。
  下面看一下一個計劃下面都有哪些主要的功能模塊(右鍵單擊“測試計劃”彈出菜單)。

  線程 用戶(Threads Users)


  雖然有三個添加線程組的選項,名字不一樣, 創(chuàng)建之后,其界面是完全一樣的。之前的版本只有一個線程組的名字,F(xiàn)在多一個setUp theread Group 與terDown Thread Group
  1) setup thread group 
  一種特殊類型的ThreadGroup的,可用于執(zhí)行預測試操作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試前進行定期線程組的執(zhí)行。
  2) teardown thread group. 
  一種特殊類型的ThreadGroup的,可用于執(zhí)行測試后動作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試結束后執(zhí)行定期的線程組。
  可能你還是不太理解他們與普通的線程組有什么不同。 如果您用過junit,想必你不會對setup ,teardown這2個字眼陌生。 即時沒用過,也沒關系。 熟悉loadrunner的應該知道,loadrunner的腳本除了action里是真正的腳本核心內容,還有初始化“環(huán)境”的初始化腳本和測試完畢后對應的清除信息的腳本塊。 那么這里 setup thread group 和 teardown thread group 是分別指這兩部分。  其實從本質上來看,他們并沒有什么不同。
  3) thread group(線程組).
  這個是我們通常添加運行的線程。通俗的講一個線程組,,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。線程組中包含的線程數(shù)量在測試執(zhí)行過程中是不會發(fā)生改變的。
  測試片段(Test Fragment)

  測試片段是在2.5版本之后新加的一個選項。
  測試片段元素是控制器上的一個種特殊的線程組,它在測試樹上與線程組處于一個層級。它與線程組有所不同,因為它不被執(zhí)行,除非它是一個模塊控制器或者是被控制器所引用時才會被執(zhí)行。
  取樣器(Sampler)

  取樣器(Sample)是性能測試中向服務器發(fā)送請求,記錄響應信息,記錄響應時間的小單元,JMeter 原生支持多種不同的sampler ,如 HTTP Request Sampler 、 FTP  Request Sample 、TCP  Request Sample 、JDBC Request Sampler 等,每一種不同類型的 sampler 可以根據(jù)設置的參數(shù)向服務器發(fā)出不同類型的請求。
  邏輯控制器(Logic Controller)


  邏輯控制器,包括兩類元件,一類是用于控制test plan 中 sampler 節(jié)點發(fā)送請求的邏輯順序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循環(huán)控制器等。另一類是用來組織可控制 sampler 來節(jié)點的,如 事務控制器、吞吐量控制器。
  配置元件(Config Element)

  配置元件(config element)用于提供對靜態(tài)數(shù)據(jù)配置的支持。CSV Data Set config 可以將本地數(shù)據(jù)文件形成數(shù)據(jù)池(Data Pool),而對應于HTTP Request Sampler和 TCP Request Sampler等類型的配制無件則可以修改Sampler的默認數(shù)據(jù)。
  定時器(Timer)

  定時器(Timer)用于操作之間設置等待時間,等待時間是性能測試中常用的控制客戶端QPS的手端。類似于LoadRunner里面的“思考時間”。JMeter 定義了Bean Shell Timer、Constant Throughput Timer、固定定時器等不同類型的Timer。
  前置處理器(Per Processors)

  用于在實際的請求發(fā)出之前對即將發(fā)出的請求進行特殊處理。例如,HTTP URL重寫修復符則可以實現(xiàn)URL重寫,當RUL中有sessionID 一類的session信息時,可以通過該處理器填充發(fā)出請求的實際的sessionID 。
  后置處理器(Post Processors)
  用于對Sampler 發(fā)出請求后得到的服務器響應進行處理。一般用來提取響應中的特定數(shù)據(jù)(類似LoadRunner測試工具中的關聯(lián)概念)。例如,XPath  Extractor 則可以用于提取響應數(shù)據(jù)中通過給定XPath 值獲得的數(shù)據(jù)。
  斷言(Assertions)

  斷言用于檢查測試中得到的相應數(shù)據(jù)等是否符合預期,斷言一般用來設置檢查點,用以保證性能測試過程中的數(shù)據(jù)交互是否與預期一致。
  監(jiān)聽器(Listener)

  這個監(jiān)聽器可不是用來監(jiān)聽系統(tǒng)資源的元件。它是用來對測試結果數(shù)據(jù)進行處理和可視化展示的一系列元件。 圖行結果、查看結果樹、聚合報告。都是我們經(jīng)常用到的元件。
  到此,我們已經(jīng)簡單了解了JMeter的基本組成元件,后續(xù)我們通過設置參數(shù)和聚合報告來執(zhí)行一個簡單的性能測試。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd