版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1JMeterJMeter基礎(chǔ)培訓(xùn)基礎(chǔ)培訓(xùn)20112011年年7 7月月2目錄JMeter介紹JMeter介紹誰在使用JMeterJMeter與Loadrunner的對比JMeter在測試工作的應(yīng)用JMeter二次開發(fā)3JMeter介紹JMeterJMeter是基于是基于JavaJava的,開放源代碼的性能測試工具的,開放源代碼的性能測試工具能夠?qū)δ軌驅(qū)TTPHTTP和和FTPFTP服務(wù)器進行壓力和性能測試服務(wù)器進行壓力和性能測試可以對任何數(shù)據(jù)庫進行同樣的測試(通過可以對任何數(shù)據(jù)庫進行同樣的測試(通過JDBCJDBC)各種負載統(tǒng)計表和可鏈接的計時器可供選擇各種負載統(tǒng)計表和可鏈接的計時器可供選
2、擇緩存和離線分析緩存和離線分析/ /回放測試結(jié)果回放測試結(jié)果完全多線程框架完全多線程框架高可擴展性高可擴展性免費/開源4誰在使用JMeter誰在使用JMeter 移動夢網(wǎng)搜索項目 盤古搜索項目56目錄JMeter介紹JMeter與Loadrunner的對比支持的協(xié)議對比功能對比使用對比JMeter在測試工作的應(yīng)用JMeter二次開發(fā)7支持的協(xié)議對比JMeter支持的協(xié)議Web(HTTP/ HTTPS),SOAP,F(xiàn)TP,Database(JDBC), LDAP, JMS, Mail(POP3/IMAP),JAVALoadrunner支持的協(xié)議WEB(Http/Html)、FTP、LDAP、Pa
3、lm、Web/WinsocketDual ProtocolSQL Server、 MS ODBC、 Oracle、 DB2、 Sybase CTlib、 Sybase DBlib、 Domain Name Resolution(DNS)、Windows Socket COM/DCOM、Corba-Java、Rmi_Java EJB、Rmi_Java Oracle NCA、SAP-Web、SAPGUI、SAPGUI/SAP-Web Dual Protocol、 PropleSoft_Tuxedo、Siebel Web、Siebel-DB2 CLI、Sieble-MSSQL、Sieble Orac
4、leJMeter支持的協(xié)議相對Loadrunner較少,但是可以通過二次開發(fā)來實現(xiàn)8JMeter與Loadrunner功能對比對比項JMeterLoadrunner支持的協(xié)議支持的協(xié)議少少多多結(jié)果報表結(jié)果報表少少豐富豐富測試場景測試場景靈活靈活靈活靈活運行環(huán)境運行環(huán)境Windows/Unix/Linux Windows/Linux(部分支持部分支持)IP欺騙功能欺騙功能無無有有9使用對比對比項JMeterLoadrunner安裝安裝簡單簡單復(fù)雜復(fù)雜腳本錄制腳本錄制很好很好較好較好腳本語言腳本語言C,JAVA,VBXML編輯方式編輯方式修改腳本修改腳本圖形界面修改圖形界面修改成本成本免費免費昂貴
5、昂貴學(xué)習(xí)資料學(xué)習(xí)資料較少(逐漸豐富)較少(逐漸豐富)很多很多10目錄JMeter介紹JMeter與Loadrunner的對比JMeter在測試工作的應(yīng)用JMeter主要組件介紹腳本錄制運行JMeter參數(shù)化設(shè)置動態(tài)關(guān)聯(lián)場景設(shè)置JMeter測試實例JMeter二次開發(fā)11JMeter主要組件(測試計劃)測試計劃(Test Plan)是使用 JMeter 進行 測試的起點,它是其它 JMeter 測試元件的容器。用戶定義的變量:用戶可以自己定義變量,在用到此變量的時候直接用$變量名引用即可。例如:$ip,$portAdd directory or jar to classpath:向類路徑即%JM
6、eter-HOME%lib中添加目錄及jar包12JMeter主要組件(線程組)名稱:線程組的名字。線程數(shù):設(shè)置發(fā)送請求的用戶數(shù)目 ,即并發(fā)數(shù)。Ramp-Up Period(in second):線程啟動的時間,單位是秒。即所有線程在多少時間內(nèi)啟動。循環(huán)次數(shù):請求的重復(fù)次數(shù),如果選擇后面的“永遠”,那么 請求將一直繼續(xù);而在輸入框中輸入數(shù)字,那么請求將重復(fù)指定的次數(shù),如果輸入1,那么請求將執(zhí)行一次。啟動時間:測試計劃什么時候啟動。結(jié)束時間:測試計劃什么時候結(jié)束。持續(xù)時間:測試計劃持續(xù)多長時間,會覆蓋結(jié)束時間。啟動延遲:測試計劃延遲多長時間啟動,會覆蓋啟動時間。13JMeter主要組件(取樣器)
7、名稱:HTTP請求的名字。Web服務(wù)器服務(wù)器名稱或IP、端口號,腳本錄制時自動添加,也可以使用“用戶自定義變量”。HTTP請求:用默認值即可。同請求一起發(fā)送參數(shù):請求中的參數(shù)、值可以在此設(shè)置,需要用到參數(shù)化及動態(tài)數(shù)據(jù)關(guān)聯(lián),后面專門介紹。同請求一起發(fā)送文件:我可以制定同請求一起發(fā)送哪個文件。其他任務(wù)包括:從HTML文件中獲取所有內(nèi)含的資源、用作監(jiān)視器14JMeter主要組件(監(jiān)聽器)監(jiān)聽器監(jiān)聽器(Listener)負責收集測試結(jié)果,支持將結(jié)果數(shù)據(jù)寫入文件。同時也負責收集測試結(jié)果,支持將結(jié)果數(shù)據(jù)寫入文件。同時也被告知了結(jié)果顯示的方式。我們常用的包括:被告知了結(jié)果顯示的方式。我們常用的包括:聚合報告
8、、聚合報告、查看結(jié)果樹、查看結(jié)果樹、用表格查看結(jié)果、用表格查看結(jié)果、圖形結(jié)果圖形結(jié)果JMeter主要組件聚合報告:聚合報告:Label:這里對應(yīng)一個HTTP Request ,顯示的就是 Name 屬性的值;#Samples: 表示你這次測試中一共發(fā)出了多少個請求;Average: 平均響應(yīng)時間 , 默認情況下是單個 Request 的平均響應(yīng)時間,當使用了 “事務(wù)控制器”時,以事務(wù)為單位為單位顯示平均響應(yīng)時間Median: 中位數(shù),也就是 50 用戶的響應(yīng)時間90% Line: 90 用戶的響應(yīng)時間Min: 最小響應(yīng)時間Max:最大響應(yīng)時間Error%: 本次測試中出現(xiàn)錯誤的請求的數(shù)量 /
9、請求的總數(shù)Throughput: 吞吐量 ,默認情況下表示每秒完成的請求數(shù)。KB/Sec: 每秒從服務(wù)器端接收到的數(shù)據(jù)量JMeter主要組件查看結(jié)果樹查看結(jié)果樹顯示取樣器請求和響應(yīng)的細節(jié),包括消息報頭,請求的數(shù)據(jù),相應(yīng)數(shù)據(jù)JMeter主要組件表格查看結(jié)果表格查看結(jié)果顯示每一請求的信息,包括發(fā)起請求的線程,開始時間,請求響應(yīng)時間,請求字節(jié)數(shù)JMeter主要組件圖形結(jié)果圖形結(jié)果腳本錄制 使用JMeter的代理服務(wù)器功能進行腳本錄制 利用Badboy進行腳本錄制,再轉(zhuǎn)為JMeter腳本19使用JMeter錄制 在測試計劃中添加線程組,在線程組中添加在測試計劃中添加線程組,在線程組中添加“配置配置元件
10、元件”“HTTP請求默認值請求默認值”,設(shè)置被測系統(tǒng)的,設(shè)置被測系統(tǒng)的IP和端口。和端口。 在在“工作臺工作臺”中添加中添加“非測試元件非測試元件”“HTTP代代理服務(wù)器理服務(wù)器”。端口:即代理服務(wù)器的監(jiān)聽端口,設(shè)。端口:即代理服務(wù)器的監(jiān)聽端口,設(shè)為為9999。 目標控制器選擇測試計劃中的線程組;分組選擇:目標控制器選擇測試計劃中的線程組;分組選擇:不對樣本分組。排除模式:不對樣本分組。排除模式:.*.jpg,.*.gif 配置瀏覽器代理,和配置瀏覽器代理,和“HTTP代理服務(wù)器代理服務(wù)器”設(shè)置保設(shè)置保持一致持一致 啟動啟動JMeter 工作臺工作臺“HTTP代理服務(wù)器代理服務(wù)器”; 打開瀏覽
11、器,登錄測試網(wǎng)站,在測試網(wǎng)頁上進行操打開瀏覽器,登錄測試網(wǎng)站,在測試網(wǎng)頁上進行操作;作; 完成后,停止完成后,停止JMeter 工作臺工作臺“HTTP代理服務(wù)器代理服務(wù)器”;20使用JMeter錄制21使用Badboy錄制 使用Badboy錄制 選擇“File - Export to JMeter”菜單,導(dǎo)出為JMeter腳本,使用JMeter打開22運行JMeter進行測試 圖形界面 命令行模式運行 JMeter.sh -n t test.jmx -l log.jtl -n告知JMeter采用非圖形化運行JMeter腳本 -t指定要運行的腳本文件 -l指定保存執(zhí)行結(jié)果的文件名參數(shù)化設(shè)置 在我
12、們的過程中,通常會提交一些參數(shù),使用不同的參數(shù)值來模擬才更接近實際情況。 參數(shù)定義后, 使用$paramName既可以使用24參數(shù)化設(shè)置用戶自定義變量 使用測試計劃中的用戶定義變量作為參數(shù) 一般定義全局變量,如:IP,端口文件參數(shù) 利用配置元件中的CSV Data Set Config進行參數(shù)化設(shè)置函數(shù)參數(shù) 使用JMeter提供的函數(shù)進行參數(shù)化 JMeter提供“函數(shù)助手”的向?qū)?5用戶自定義變量26文件參數(shù) 在一個HTTP請求中,要提交多個參數(shù),其中category,query兩個參數(shù)需要做參數(shù)化,數(shù)據(jù)保存在文件中27文件參數(shù) 使用配置元件CSV Data Set Config28Filen
13、ame文件名:即參數(shù)化要引用的文件名File encoding:文件編碼:可以不填。Variable Names(comma-delimited)變量名(用逗號分割):多個變量可以引用同一個文件,用逗號分割。這里是num1,num2Delimiter:參數(shù)文件中多個變量值的分隔符,t表示用tab鍵分割,默認是逗號。Recycle on EOF:結(jié)束后是否循環(huán)?默認是True.函數(shù)參數(shù) JMeter函數(shù)助手的功能,里面內(nèi)置了多個函數(shù);29文件參數(shù)選擇一個功能選擇一個功能_Random。設(shè)定最小值為設(shè)定最小值為1。設(shè)定最大值為設(shè)定最大值為100。函數(shù)名稱設(shè)為函數(shù)名稱設(shè)為num1。點擊生成將生成一個
14、引用字符串點擊生成將生成一個引用字符串$_Random(0,100,num1,在需要的請,在需要的請求參數(shù)中拷貝該字符串即可。求參數(shù)中拷貝該字符串即可。其中函數(shù)名稱用來在引用中作區(qū)別,即我們可以設(shè)定不同的名稱在不同其中函數(shù)名稱用來在引用中作區(qū)別,即我們可以設(shè)定不同的名稱在不同的地方引用同一個函數(shù)的功能。的地方引用同一個函數(shù)的功能。30動態(tài)關(guān)聯(lián) 在HTTP請求的參數(shù)中經(jīng)常會遇到一些參數(shù)的值是從服務(wù)器相應(yīng)的動態(tài)數(shù)據(jù),這些數(shù)據(jù)需要進行關(guān)聯(lián)才能使得每一次請求都能成功得被服務(wù)器接受,在JMeter中采用正則表達式提取器來獲取這些動態(tài)的數(shù)據(jù)。 正則表達式允許用戶從服務(wù)器響應(yīng)中獲取數(shù)據(jù),作為一個后置處理器,
15、正則表達式提取器會在每一個請求執(zhí)行后再執(zhí)行,正則表達式提取請求的參數(shù)值,產(chǎn)生模板字符串,并將結(jié)果保存到給出的變量中。31動態(tài)關(guān)聯(lián) 在腳本錄制完畢以后,運行一遍錄制的腳本,使在腳本錄制完畢以后,運行一遍錄制的腳本,使用用“察看結(jié)果樹察看結(jié)果樹”監(jiān)聽器,分析那些需要做動態(tài)監(jiān)聽器,分析那些需要做動態(tài)關(guān)聯(lián)(一般建議先使用關(guān)聯(lián)(一般建議先使用HttpWatch分析那些要做分析那些要做動態(tài)關(guān)聯(lián));動態(tài)關(guān)聯(lián)); 以基于以基于WEB_BAS的的SQMAS為例。經(jīng)過分析,在為例。經(jīng)過分析,在登錄時,會登錄時,會cookie會記錄一個會記錄一個JSESSIONID,每,每次提交請求時,會次提交請求時,會post一
16、個一個ticket。32動態(tài)關(guān)聯(lián) 添加一個正則表達式提取器,提取添加一個正則表達式提取器,提取JSESSIONID; 可以添加一個響應(yīng)斷言,測試提取結(jié)果;可以添加一個響應(yīng)斷言,測試提取結(jié)果; $jessionid_g1表示匹配第一組數(shù)值,這里只有一表示匹配第一組數(shù)值,這里只有一個,也可以直接使用個,也可以直接使用$jessionid33動態(tài)關(guān)聯(lián) 運行測試計劃,測試提取結(jié)果34動態(tài)關(guān)聯(lián) 修改ticket,使用提取的JSESSIONID35場景設(shè)置 JMeter的邏輯控制器提供了一系列的組件,可以實現(xiàn)多樣化的場景控制。 常用的邏輯控制器有:循環(huán)控制器,事務(wù)控制器36JMeter測試實例 HTTP
17、GET測試 基于WEB_BAS的測試實例 HTTP XML測試37目錄38JMeter介紹JMeter與Loadrunner的對比JMeter在測試工作的應(yīng)用JMeter二次開發(fā)自定義協(xié)議實現(xiàn)思路應(yīng)用舉例HTTP GET測試39基于WEB_BAS的測試實例40JMeter二次開發(fā) JMeter取樣器提供了一些協(xié)議的測試取樣器提供了一些協(xié)議的測試支持。如果不能滿足測試需要,需要支持。如果不能滿足測試需要,需要做二次開發(fā)。做二次開發(fā)。 JMeter是基于是基于Java語言實現(xiàn)的,例語言實現(xiàn)的,例如如http請求,它只是用請求,它只是用Java代碼封裝代碼封裝了了Http的協(xié)議,內(nèi)部其實使用了的協(xié)議
18、,內(nèi)部其實使用了Java的類庫來對應(yīng)用發(fā)送請求的,所以通的類庫來對應(yīng)用發(fā)送請求的,所以通過過Java請求的性能測試,我們可以做請求的性能測試,我們可以做任意自定義協(xié)議請求的性能測試任意自定義協(xié)議請求的性能測試41JMeter自定義協(xié)議實現(xiàn)思路 新建一個測試類,繼承新建一個測試類,繼承org.apache. tocol.java.sampler.AbstractJavaSamplerClient 實現(xiàn)實現(xiàn)getDefaultParameters , setupTest,runTest , teardownTest方法方法 getDefaultParameters是配置參數(shù)的方
19、法是配置參數(shù)的方法 setupTest和和teardownTest與與JUnit中的類似,中的類似,分別在測試的開始和結(jié)束時執(zhí)行。分別在測試的開始和結(jié)束時執(zhí)行。 runTest為主要測試方法,所有測試程序都在這為主要測試方法,所有測試程序都在這里完成。里完成。42應(yīng)用舉例 盤古索引項目需要對后臺分布式索引系統(tǒng)進行性能測試,經(jīng)過分析,直接對web搜索頁面進行測試得到不能得到真實的性能情況。 解決方法:使用JMeter二次開發(fā),調(diào)用分布文件系統(tǒng)的查詢API進行性能測試43應(yīng)用舉例 創(chuàng)建一個indexBaseTest類44public class indexBaseTest extends Abst
20、ractJavaSamplerClient implements Serializable 應(yīng)用舉例 實現(xiàn)getDefaultParameters方法方法45public Arguments getDefaultParameters() Arguments params = new Arguments();/ 增加一個參數(shù),默認值為空,參數(shù)名顯示為params.addArgument(KEY, );return params;應(yīng)用舉例 實現(xiàn)setupTest方法方法46public void setupTest(JavaSamplerContext context) getLogger().debug(whoAmI() + tsetupTest();listParameters(context); try /根據(jù)索引名稱初始化一個索引實例index = new Index(indexName); catch (IOException e) e.printStackTrace(); catch ( Exception e) e.printStackTrace(); 應(yīng)用舉例 實現(xiàn)實現(xiàn)runTes
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年高端餐廳員工聘用合同示范3篇
- 二零二五版凍豬肉儲備政府采購合同爭議解決與仲裁條款2篇
- 二零二五版商業(yè)地產(chǎn)改造與招商合作合同3篇
- 二零二五年度腳手架施工材料供應(yīng)與租賃合同3篇
- 二零二五版新型讓與擔保合同-供應(yīng)鏈金融支持協(xié)議2篇
- 二零二五版家政服務(wù)員與雇主及家政協(xié)會三方合作合同3篇
- 二零二五版公司間股權(quán)置換、轉(zhuǎn)讓與資本運作合同3篇
- 二零二五年教育機構(gòu)教學(xué)質(zhì)量兜底服務(wù)合同范本3篇
- 二零二五版二手房貸款買賣合同范本:適用于房產(chǎn)交易中的擔保合同2篇
- 二零二五年度購物卡電子支付解決方案合同3篇
- 2025年河北供水有限責任公司招聘筆試參考題庫含答案解析
- Unit3 Sports and fitness Discovering Useful Structures 說課稿-2024-2025學(xué)年高中英語人教版(2019)必修第一冊
- 農(nóng)發(fā)行案防知識培訓(xùn)課件
- 社區(qū)醫(yī)療抗菌藥物分級管理方案
- 安徽大學(xué)大學(xué)生素質(zhì)教育學(xué)分認定辦法
- 巴布亞新幾內(nèi)亞離網(wǎng)光儲微網(wǎng)供電方案
- 高度限位裝置類型及原理
- 中文版gcs electrospeed ii manual apri rev8v00印刷稿修改版
- 新生兒預(yù)防接種護理質(zhì)量考核標準
- 除氧器出水溶解氧不合格的原因有哪些
- 沖擊式機組水輪機安裝概述與流程
評論
0/150
提交評論