利用JMeter進行Web測試(最好).ppt_第1頁
利用JMeter進行Web測試(最好).ppt_第2頁
利用JMeter進行Web測試(最好).ppt_第3頁
利用JMeter進行Web測試(最好).ppt_第4頁
利用JMeter進行Web測試(最好).ppt_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、利用JMeter進行Web測試,King_W,利用JMeter進行Web測試,JMeter介紹 腳本錄制 運行JMeter進行測試 JMeter主要組件介紹 參數(shù)化設(shè)置 動態(tài)數(shù)據(jù)關(guān)聯(lián) 使用命令行運行JMeter腳本 利用XSLT分析JMeter結(jié)果文件,JMeter介紹,JMeter,一個100的純Java桌面應用,它是Apache組織的開放源代碼項目,它是功能和性能測試的工具。JMeter可以用于測試靜態(tài)或者動態(tài)資源的性能(文件、Servlets、Perl腳本、Java對象、數(shù)據(jù)庫和查詢、ftp服務(wù)器或者其他資源)。原先Jmemer是為Web/HTTP測試而設(shè)計的,但是它已經(jīng)擴展以支持各種各

2、樣的測試模塊。它和用于HTTP和SQL數(shù)據(jù)庫(使用JDBC)的模塊一起運送。它可以用來測試靜止資料庫或者活動資料庫中的服務(wù)器的運行情況,可以用來模擬對服務(wù)器或者網(wǎng)絡(luò)系統(tǒng)加以重負荷以測試它的抵抗力,或者用來分析不同負荷類型下的所有運行情況。它也提供了一個可替換的界面用來定制數(shù)據(jù)顯示,測試同步及測試的創(chuàng)建和執(zhí)行。Jmeter的下載地址:/jmeter/usermanual/index.htmlJMeter 的特性:a) 能夠?qū)TTP和FTP服務(wù)器進行壓力和性能測試, 也可以對任何數(shù)據(jù)庫進行同樣的測試(通過JDBC)。b) 完全的可移植性和100 純

3、Java。c) 完全 Swing 和輕量組件支持(預編譯的JAR使用 javax.swing.*)包。d) 完全多線程 框架允許通過多個線程并發(fā)取樣和 通過單獨的線程組對不同的功能同時取樣。e) 精心的GUI設(shè)計允許快速操作和更精確的計時。f) 緩存和離線分析/回放測試結(jié)果。g) 高可擴展性:h) 可鏈接的取樣器允許無限制的測試能力。i) 各種負載統(tǒng)計表和可鏈接的計時器可供選擇。j) 數(shù)據(jù)分析和可視化插件提供了很好的可擴展性以及 以及個性化。k) 具有提供動態(tài)輸入到測試的功能(包括Javascrpt)。l) 支持腳本變成的取樣器(在1.9.2及以上版本支持BeanShell)。,腳本錄制,利用

4、BadBoy進行腳本錄制,利用JMeter的代理服務(wù)器功能進行腳本錄制,利用BadBoy錄制JMeter腳本(1),通過Badboy的官方網(wǎng)站(.au)下載Badboy的最新版本; 安裝Badboy。安裝過程同一般的Windows 應用程序沒有什么區(qū)別,安裝完成后你可以在桌面和Windows開始菜單中看到相應的快捷方式如果找不到,可以找一下Badboy安裝目錄下的Badboy.exe 文件,直接雙擊啟動Badboy; 啟動Badboy,你可以看到下面的界面。,利用BadBoy錄制JMeter腳本(2),在地址欄(圖中紅色方框標注的部分)中輸入你需要錄制的Web應用的URL這里我們以 為例 。

5、點擊 開始錄制 按鈕(圖中藍色圓圈標注的部分)開始錄制。 開始錄制后,你可以直接在Badboy內(nèi)嵌的瀏覽器(主界面的右側(cè))中對被測應用進行操作,所有的操作都會被記錄在主界面左側(cè)的編輯窗口中(圖中黃色方框標注的部分)在這個試驗中,我們在baidu的搜索引擎中輸入 JMeter 進行搜索。不過錄制下來的腳本并不是一行行的代碼,而是一個個Web對象這有點像LoadRunner的VuGen中的Tree View視圖; 錄制完成后,點擊工具欄中的“停止錄制”按鈕(圖中紫色方框標注的部分),完成腳本的錄制;,利用BadBoy錄制JMeter腳本(3),選擇“File - Export to JMeter”

6、菜單,填寫文件名“baidu.jmx”,將錄制好腳本導出為JMeter腳本格式。也可以選擇“File - Save”菜單保存為Badboy腳本; 啟動JMeter并打開剛剛生成的測試腳本,就可以用JMeter進行測試了。,利用JMeter的代理服務(wù)器功能進行腳本錄制(1),在測試計劃中添加線程組,在線程組中添加邏輯控制器錄制控制器。 在工作臺中添加非測試元件HTTP代理服務(wù)器。 端口:即代理服務(wù)器的監(jiān)聽端口,我們設(shè)為8080。 目標控制器選擇:測試計劃線程組; 分組選擇:每個組放入一個新的控制器。,利用JMeter的代理服務(wù)器功能進行腳本錄制(2),在HTTP代理服務(wù)器中添加定時器高斯隨機定時

7、器(用于告知Jmeter來在其生成的HTTP請求中自動的增加一個定時器)。定時器將會使相應的的取樣器被延遲。 延時的規(guī)則是,在上一個訪問請求被響應并延時了指定的時間后,下一個被定時器影響的取樣訪問請求才會被發(fā)送出去。 如果在代理服務(wù)器元件里使用了高斯隨機定時器,就應該在其中的固定延遲偏移(Constant Delay Offset)設(shè)置項里添上$T(用于自動引用紀錄的延遲時間)。,利用JMeter的代理服務(wù)器功能進行腳本錄制(3),代理服務(wù)器配置好以后,點擊啟動,代理服務(wù)器就會開始記錄所接受的HTTP 訪問請求。 打開瀏覽器,打開Internet選項,將局域網(wǎng)(LAN)設(shè)置中的代理服務(wù)器設(shè)為:

8、localhost,端口為在代理服務(wù)器中設(shè)的端口:8080。,利用JMeter的代理服務(wù)器功能進行腳本錄制(4),在瀏覽器地址欄中輸入地址并進行相關(guān)的操作進行錄制,錄制完成后, 停止HTTP 代理服務(wù)器; 在錄制控制器元件上單擊右鍵將記錄的元件保存為一個文件用于以后重用,另外,不要忘了恢復瀏覽器的代理服務(wù)器設(shè)置。,運行Jmeter進行測試(1),腳本錄制完畢后,就可以運行JMeter來進行我們的測試了。 到JMeter的網(wǎng)站/site/downloads/downloads_jmeter.cgi 下載JMeter的最新版本,將zip文件解壓縮到D

9、:/JMeter,運行D:/JMeter/bin下的jmeter.bat即可。,運行Jmeter進行測試(2),打開JMeter會有一個默認的測試計劃,點擊文件打開,選中錄制的腳本文件如:WebXSample_addUser.jmx,打開腳本進行測試。 在線程組上添加監(jiān)聽器聚合報告(用于分析測試結(jié)果)后,點擊運行啟動,開始測試,測試完畢后在聚合報告中就可以看到測試結(jié)果。一個簡單的測試計劃就完成了。,運行Jmeter進行測試(3),聚合報告顯示測試結(jié)果,運行Jmeter進行測試(4)聚合報告詳解,Label:每個 JMeter 的 element (例如 HTTP Request )都有一個 N

10、ame 屬性,這里顯示的就是 Name 屬性的值 #Samples:表示你這次測試中一共發(fā)出了多少個請求,如果測試計劃模擬10個用戶,每個用戶迭代10次,這里就會顯示100 Average:平均響應時間 默認情況下是單個 Request 的平均響應時間,當使用了事務(wù)控制器時,也可以以事務(wù)為單位顯示平均響應時間 Median:中位數(shù),也就是 50 用戶的響應時間 90% Line: 90 用戶的響應時間 Min:最小響應時間 Max:最大響應時間 Error%:錯誤率,本次測試中出現(xiàn)錯誤的請求的數(shù)量 / 請求的總數(shù) Throughput:吞吐量 默認情況下表示每秒完成的請求數(shù)( Request

11、per Second ) KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量,JMeter主要組件介紹,測試計劃(Test Plan)是使用 JMeter 進行測試的起點,它是其它 JMeter 測試元件的容器。 線程組(Thread Group)代表一定數(shù)量的并發(fā)用戶,它可以用來模擬并發(fā)用戶發(fā)送請求。 取樣器(sampler)定義實際的請求內(nèi)容,被線程組包含,我們主要用HTTP請求。 監(jiān)聽器(Listener) 邏輯控制器(Logic Controller) 斷言(Assertions) 配置元件(Config Element) 前置處理器(Pre Processors)和后置處理器(Post Pr

12、ocessors) 定時器(Timer),JMeter主要組件介紹測試計劃,測試計劃(Test Plan)是使用 JMeter 進行測試的起點,它是其它 JMeter 測試元件的容器。 名稱:你可以為你的測試計劃取一個有意義的名字。 注釋:對測試計劃的注釋。 用戶定義的變量:用戶可以自己定義變量,在用到此變量的時候直接用$變量名引用即可。例:變量名url,值,在需要時直接用$url即可。 Add directory or jar to classpath:向類路徑即%JMETER-HOME%lib中添加目錄及jar包。,JMeter主要組件介紹線程組,名稱:為線程組起名字。 線程屬性線程數(shù):設(shè)

13、置發(fā)送請求的用戶數(shù)目 ,即并發(fā)數(shù)。 線程屬性Ramp-Up Period(in second):線程間的時間間隔,單位是秒。即所有線程在多少時間內(nèi)啟動。 線程屬性循環(huán)次數(shù):請求的重復次數(shù),如果選擇后面的forever(默認),那么 請求將一直繼續(xù),如果不選擇forever,而在輸入框中輸入數(shù)字,那么請求將重復指定的次數(shù),如果輸入1,那么請求將執(zhí)行一次,如果是0,會出現(xiàn)問題。 調(diào)度器配置啟動時間:測試計劃什么時候啟動,啟動延遲會覆蓋它。 調(diào)度器配置結(jié)束時間:測試計劃什么時候結(jié)束,持續(xù)時間會覆蓋它。 調(diào)度器配置持續(xù)時間:測試計劃持續(xù)多長時間,會覆蓋結(jié)束時間。 調(diào)度器配置啟動延遲:測試計劃延遲多長時

14、間啟動,會覆蓋啟動時間。,JMeter主要組件介紹取樣器(HTTP請求),名稱: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)視器、Embedded URLs must match。,JMeter主要組件介紹監(jiān)聽器,監(jiān)聽器(Listener)負責收集測試結(jié)果,同時也被告知了結(jié)果顯示的方式。

15、我們常用的包括:聚合報告、查看結(jié)果樹、用表格查看結(jié)果,都支持將結(jié)果數(shù)據(jù)寫入文件。其他的添加上去看看就行。聚合報告前面我們介紹過,后面是查看結(jié)果樹和用表格查看結(jié)果的截圖。,JMeter主要組件介紹監(jiān)聽器(用表格查看結(jié)果),JMeter主要組件介紹監(jiān)聽器(查看結(jié)果樹),JMeter主要組件介紹邏輯控制器,邏輯控制器(Logic Controller)可以自定義JMeter發(fā)送請求的行為邏輯,它與Sampler結(jié)合使用可以模擬復雜的請求序列。,JMeter主要組件介紹邏輯控制器,循環(huán)控制器可以設(shè)置請求的循環(huán)次數(shù)或永遠循環(huán)(如果選中永遠的話)。 事務(wù)控制器可以將多個請求放在同一個事務(wù)中。如果選中Geg

16、erate parent sample,則聚合報告中只顯示事務(wù)控制器的數(shù)據(jù),而不會顯示其中的各個請求的數(shù)據(jù),反之則全部顯示。,JMeter主要組件介紹斷言,斷言(Assertions)可以用來判斷請求響應的結(jié)果是否如用戶所期望的。它可以用來隔離問題域,即在確保功能正確的前提下執(zhí)行壓力測試。這個限制對于有效的測試是非常有用的。,JMeter主要組件介紹配置元件,配置元件(Config Element)維護Sampler需要的配置信息,并根據(jù)實際的需要會修改請求的內(nèi)容。我們主要在參數(shù)化中用到CSV Data Set Config,JMeter主要組件介紹前置處理器和后置處理器,前置處理器(Pre

17、Processors)和后置處理器(Post Processors)負責在生成請求之前和之后完成工作。前置處理器常常用來修改請求的設(shè)置,后置處理器則常常用來處理響應的數(shù)據(jù)。我們主要在動態(tài)關(guān)聯(lián)中用到后置處理器的正則表達式提取器。,JMeter主要組件介紹定時器,定時器(Timer)負責定義請求之間的延遲間隔。,參數(shù)化設(shè)置,在我們的測試計劃中我們使用的都是HTTP請求,在HTTP請求中常常會提交一些參數(shù),我們?yōu)榱瞬幌朐诿恳淮握埱笾卸际褂孟嗤膮?shù)值,就要想辦法讓每一次請求的參數(shù)的值都是不一樣的,我們就需要進行參數(shù)化設(shè)置,這里我們介紹兩種參數(shù)化設(shè)置的方法。 一種是利用函數(shù)助手中的_Random函數(shù)進

18、行參數(shù)化設(shè)置; 一種是利用配置元件中的CSV Data Set Config進行參數(shù)化設(shè)置。,參數(shù)化設(shè)置函數(shù)助手(1),JMeter中有一個函數(shù)助手的功能,里面內(nèi)置了多個函數(shù),我們可以利用其中的_Random函數(shù)來進行請求中的參數(shù)化設(shè)置。,參數(shù)化設(shè)置函數(shù)助手(2),在JMeter中選擇“選項函數(shù)助手對話框”打開函數(shù)助手對話框。,參數(shù)化設(shè)置函數(shù)助手(3),選擇一個功能_Random。 設(shè)定最小值為1。 設(shè)定最大值為100。 函數(shù)名稱設(shè)為func1。 點擊生成將生成一個引用字符串$_Random(1,100,func1,在需要的請求參數(shù)中拷貝該字符串即可。 其中函數(shù)名稱用來在引用中作區(qū)別,即我們可以設(shè)定不同的名稱在不同的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論