jmeter(一)基礎介紹html
</h1> <div class="clear"></div> <div class="postBody">
參考書籍:段念《軟件性能測試與案例剖析》——第二版java
推薦一本書《零成本實現web性能測試——基於Apache—jmeter》,主要內容是一些關於jmeter的實戰使用,想學習的能夠去看看。。。git
jmeter是一款優秀的開源性能測試工具,目前最新版本3.0版本,官網文檔地址:http://jmeter.apache.org/usermanual/index.htmlweb
1、優勢正則表達式
一、開源工具,可擴展性很是好shell
二、高可擴展性,用戶可自定義調試相關模塊代碼apache
三、精心簡單的GUI設計,小巧靈活服務器
四、徹底的可移植性和100%純java微信
五、徹底swing和輕量組件支持(預編譯的HAR使用javax.swing.*)包
六、徹底多線程框架,容許經過多個線程併發取樣以及單獨的線程對不一樣的功能同時取樣
七、支持腳本取樣器
2、安裝及下載
這裏附一個最新的jmeter官網下載地址:
http://jmeter.apache.org/download_jmeter.cgi
該連接是3.0版本的jmeter安裝包
jmeter自己不須要安裝,只須要配置好JDK環境,而後在在jmeter文件中的bin文件中打開jmeter.bat文件便可
最新版本,建議配置的JDK最好用1.7及以上版本
3、基礎構成
一、組成部分
1)負載發生器:產生負載,多進程或多線程模擬用戶行爲
2)用戶運行器:腳本運行引擎,用戶運行器附加在進程或線程上,根據腳本模擬指定的用戶行爲
3)資源生成器:生成測試過程當中服務器、負載機的資源數據
4)報表生成器:根據測試中得到的數據生成報表,提供可視化的數據顯示方式·
二、主要概念
2.1測試計劃(test plan)
描述一個性能測試,包含本次測試全部相關功能
2.2.threads(users)線程
Setup thread group:
一種特殊類型的線程,可用於執行預測試操做。即執行測試前進行按期線程組的執行
Teardown thread group:
一種特殊類型的線程,可用於執行測試後動做。即執行測試結束後執行按期的線程組
以上兩個線程組,舉個例子:loadrunner的腳本除了action裏是真正的腳本核心內容,還有初始化「環境」的初始化腳本和測試完畢後對應的清除信息的腳本塊,與其對應
Thread group:
一般添加使用的線程,通常一個線程組可看作一個虛擬用戶組,其中每一個線程爲一個虛擬用戶
2.3測試片斷(test fragment)
2.5版本以後新增的一個選項,是一種特殊的線程組,在測試樹上與線程組一個層級,可是它不被執行,除非它是一個模塊控制器或者被控制器所引用時纔會被執行
2.4控制器
Jmeter有2種控制器:取樣器(sampler)和邏輯控制器(Logic Controller)
做用:用這些原件驅動處理一個測試
1)取樣器(Sampler)
是性能測試中向服務器發送請求,記錄響應信息,記錄響應時間的最小單元,JMeter 原生支持多種不一樣的sampler
如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、JDBC Request Sampler 等
每一種不一樣類型的 sampler 能夠根據設置的參數向服務器發出不一樣類型的請求。
Java Request Sampler 和 Beanshell Request Sampler 是兩種特殊的可定製的 Sampler (暫不討論)
2)邏輯控制器(Logic Controller)
包含兩類原件:
一類是控制Test Plan中Sampler節點發送請求的邏輯順序控制器,經常使用的有:If Controller、Swith Controller、Loop Controller、Random Controller等
另外一類是用來組織和控制Sampler節點的,如Transaction Controller、Throughput Controller等
2.5監聽器(Listener)
對測試結果進行處理和可視化展現的一系列組件,經常使用的有圖形結果、查看結果樹、聚合報告等
以上的五類原件就能夠構成一個簡單的性能測試腳本
下面再介紹幾種jmeter提供的其餘組件:
2.6配置原件(Config Element)
用於提供對靜態數據配置的支持。CSV Date Set Config能夠將本地數據文件造成數據池(Date Pool),而對應於HTTP Request Configuration
和TCP Request Sample等類型的Configuration元件則能夠修改這些Sample的默認數據等
2.7定時器(Time)
用於操做之間設置等待時間,等待時間使性能測試中經常使用的控制客戶端QPS的手段,jmeter定義了Constant Times、
Constant Throughput Times、Guass Ramdon Times等不一樣類型的Times
2.8斷言(Assertions)
用於檢查測試中獲得的響應數據等是否符合預期,Assertions通常用來設置檢查點,用以保證性能測試過程當中的數據交互與預期一致
2.9前處理器(Pre Processors)
用於在實際請求發出以前對即將發出的請求進行特殊處理。
例如:Count處理器能夠實現自增操做,自增後生成的的數據能夠被將要發出的請求使用,而HTTP URL Re—Writing Modifier處理器則能夠實現URL重寫,
當URL中有sessionID一類的session信息時,能夠經過該處理器填充發出請求實際的sessionID。
2.10後處理器(Post Processors)
用於對Sampler發出請求後獲得的服務器響應進行處理。通常用來提取響應中的特定數據(相似loadrunner中的關聯)。
例如:Regular Expression Extractor用於提取響應數據中匹配某正則表達式的數據段,並將其填充在參數中,Xpath Extractor則能夠用於提取響應數據中經過給定Xpath值得到的數據。。。
</div> <div class="postDesc">posted @