开源性能测试工具JMeter快速入门(一)
目錄
一、JMeter簡介
二、JMeter功能介紹
三、JMeter腳本
四、關(guān)于JMeter小提示
一、JMeter簡介
1.定義
JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設(shè)計用于Web應(yīng)用測試,但后來擴展到其他測試領(lǐng)域。
????1)它可以用于測試靜態(tài)和動態(tài)資源,例如靜態(tài)文件、Java?小服務(wù)程序、CGI 腳本、Java 對象、DB、FTP 服務(wù)器, 等等。
????2)JMeter 可以用于對服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。
????3)JMeter能夠?qū)?yīng)用程序做功能/回歸測試,通過創(chuàng)建帶有斷言的腳本來驗證程序是否返回了預(yù)期結(jié)果。為了最大限度的靈活性,JMeter允許使用正則表達式創(chuàng)建斷言。
????4)JMeter支持的協(xié)議有:Web(Http、Https)、SOAP、FTPd、JDBC、郵件、MongoDB、TCP、原生命令或Shell腳本
2.JMeter的優(yōu)勢
????1)可對任何DB進行壓力測試(通過JDBC)
????2)純Java,可移植性強
????3)輕量組件支持包(預(yù)編譯的JAR使用javax.swing.*)
????4)多線程(多個線程并發(fā)或通過單獨的線程組對不同功能同時操作)
????5)計時精確
????6)緩存和離線分析,回放測試結(jié)果
????7)完全開源,可對JMeter進行二次開發(fā),增加業(yè)務(wù)對應(yīng)所需的插件
3.JMeter不足
????1)錄制功能操作不方便。需要第三方工具Badboy或使用Browser代理錄制
????2)入門困難,同時網(wǎng)上學(xué)習(xí)資源較少
????3)報表類型少,場景設(shè)計比LR復(fù)雜
????4)不支持進程模式
????5)大并發(fā)時的結(jié)果不準確。
二、JMeter功能介紹
1.測試計劃
????啟動JMeter后,默認打開了一個測試計劃,一個完整的測試計劃劃包含一個或多個線程組、邏輯控制、取樣發(fā)生控制、監(jiān)聽器、定時器、斷言和配置元件。
2.線程
????相當(dāng)于LR中的VUser,每個JMeter測試計劃的第一步就是添加線程組。在線程組里設(shè)置并發(fā)用戶量、并發(fā)時間或并發(fā)次數(shù)、線程的啟動頻率。
????JMeter的線程組有三種類型:
????????setup thread group: setup ,進行測試前的準備初始化工作,即init
????????teardown thread group:teardown,測試結(jié)束后的垃圾回收等清理工作,即end
????????thread group:最常用的線程組,相當(dāng)于Action .一個線程相當(dāng)于一個LR中的Vuser,這些線程在腳本運行過程中無法改變。
3.測試片段(Test Fragment)
????測試片段元素像是控制器上的一種特殊的線程組,在測試樹上與線程組同級。但它不被執(zhí)行,除非引用 。
4.取樣器Sampler
????性能測試中向服務(wù)器發(fā)送請求并等待響應(yīng)時間的最小單元,每個取樣器有不同的屬性可以編輯。
5.邏輯控制器
????可自定義JMeter發(fā)送請求的行為邏輯 ,與Sampler結(jié)合使用可以模擬復(fù)雜的請求序列。常用的邏輯控制器有:IF Controller、While Controller、Runtime Controller、事務(wù)控制器、隨 ? ? 機控制器、交替控制器、吞吐量控制器、模塊控制器等。
6.監(jiān)聽器
????對JMeter測試結(jié)果進行收集處理并進行可視化展現(xiàn)出的一系列元件,包括發(fā)送的請求數(shù)據(jù)、返回的結(jié)果數(shù)據(jù)、響應(yīng)時間的統(tǒng)計、吞吐量、錯誤率、返回結(jié)果狀態(tài)等。常見的監(jiān)聽器有:圖 ? ? ? 形結(jié)果、查看結(jié)果樹、用表格查看結(jié)果、聚合報告等。
7.配置元件
????維護Sampler需要的配置信息,并根據(jù)實際需要修改請求內(nèi)容 。一般配置元件放在請求開始前。
8.定時器
????即思考時間。一來為了真實地模擬用戶并發(fā)行為,二來控制每個線程間的請求間隔時間以減少服務(wù)器壓力。
9.斷言
????即檢查點。壓力測試前提是功能正確。常用的斷言有:響應(yīng)斷言、XML斷言、HTML斷言、XPath斷言。
10.前置處理器
????用來修改請求的設(shè)置。eg.Http URL重寫修復(fù)符可實現(xiàn)URL重寫,當(dāng)RUL中有sessionID一類的session信息時,可通過該處理器填充發(fā)出請求的實際sessionID
11.后置處理器
????即關(guān)聯(lián)。用于對Sampler發(fā)出請求后得到的服務(wù)器響應(yīng)數(shù)據(jù)進行處理。一般用于提取響應(yīng)中的特定數(shù)據(jù),如用后置處理器中的正則表達式提取器對服務(wù)器返回的特定數(shù)據(jù)進行關(guān)聯(lián)操作。
本文轉(zhuǎn)自 honzhang 51CTO博客,原文鏈接:http://blog.51cto.com/hongz/2065065
總結(jié)
以上是生活随笔為你收集整理的开源性能测试工具JMeter快速入门(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单页面抓图并且保存的爬虫
- 下一篇: 对操作系统的五点感受--接口/进程/内存