




免費預覽已結束,剩余24頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
JMeter的簡單使用1. JMeter簡介Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設計用于Web應用測試,但后來擴展到其他測試領域。 它可以用于測試靜態(tài)和動態(tài)資源,例如靜態(tài)文件、Java小服務程序、CGI 腳本、Java 對象、數(shù)據(jù)庫、FTP 服務器, 等等。JMeter 可以用于對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/回歸測試,通過創(chuàng)建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創(chuàng)建斷言。2. 安裝與配置2.1. 工具/原料l JDK 1.7l Apache JMeter 3.02.2. 環(huán)境JMeter可以在Windows/Linux/Mac平臺上運行,這里介紹在Windows上的安裝配置。2.3. 安裝步驟l 安裝JDK,網上下載一個JDK,配置好環(huán)境變量即可使用。在dos界面輸入java -version,能顯示版本號,則證明JDK安裝OK,可以使用。l 安裝Jmeter:Jmeter不需要安裝,解壓之后即可使用;雙擊Jmeter的bin目錄下的jmeter.bat,出現(xiàn)下面界面,則Jmeter啟動成功,Jmeter就緒。3. HTTP接口測試3.1. 測試實例以一個簡單的接口為例:/get?key2=value2&key1=value1在瀏覽器中打開的效果如下:在這里,成功的用瀏覽器訪問了這個接口,并得到了成功的返回報文。下面我們用Jmeter來訪問這個接口。3.2. 使用Jmeter進程HTTP測試3.2.1. 添加線程組l 右鍵“測試計劃”-“添加”-“Threads(Users)”-“線程組”3.2.2. 添加“HTTP請求”l 右鍵“線程組”-“添加”-“Sampler”-“HTTP請求”l 打開之后,填入訪問該接口所需要的參數(shù),效果如下圖Tips:1. 服務器名或IP:這里填寫服務IP地址(不帶端口),有域名的直接填寫域名2. 端口號:這里填寫端口號,有域名的這里為空就好。3. Timeouts(milliseconds):超時時間,單位是毫秒;Connect:連接超時;Response:響應超時。二者都可以不填4. Implementa:采用什么實例來運行這次HTTP請求(HttpClient4/HttpClient3.1/Java),這里我們不用選擇,直接默認就好。協(xié)議:該接口采用什么協(xié)議(http/https),這里不填默認是http,根據(jù)情況填寫方法:請求該接口的方法(GET/POST等),根據(jù)接口請求類型選擇。Content encoding:這里是返回報文的編碼格式(如utf-8),采用默認值就好5. 同請求一起發(fā)送參數(shù):接口的參數(shù),可以通過下方“添加”按鈕,添加參數(shù),左邊為“key”,右邊填“value”,如上圖。(這里只適用于傳參數(shù)的接口,傳Json和文件等接口使用這種方式不支持,暫不做介紹)3.2.3. 添加監(jiān)聽器完成上述3.2.1和3.2.2步,一個接口的簡單腳本已經編寫完成了;但是此時我們還不知道在哪里查看腳本運行的結果,這里我們需要添加一個監(jiān)聽器。l 右鍵“線程組”-“添加”-“監(jiān)聽器”,選擇“察看結果樹”Tips:Jmeter提供了需要監(jiān)聽器,有興趣的可以去一一添加,察看效果。3.2.4. 運行腳本l 點擊按鈕,運行腳本,察看結果在“響應數(shù)據(jù)”下,我們看到了與使用瀏覽器一樣的返回結果(報文中headers有差異,這部分可以忽略,想知道為什么不一樣的可以去學學http協(xié)議,在這里不影響結果)。到這里,一個http接口測試的Jmeter腳本已經完成。“Ctrl+S”保存一下吧,下次就可以直接拿來使用了(Jmeter腳本默認保存在bin目錄下)3.3. 壓力測試在上面腳本配置上線程數(shù),即可對該接口進行壓力測試啦。l 點擊“線程組”1. 線程數(shù):需要采用多少個并發(fā)。2. Ramp-Up Period(in seconds):設置到達最大并發(fā)所需時間(如上圖,從0增加到5個并發(fā),花費1秒鐘)3. 循環(huán)次數(shù):每個并發(fā)執(zhí)行幾遍腳本(如上圖,每個線程執(zhí)行100遍)。勾選永遠,則腳本會被無限循環(huán)執(zhí)行下去。4. 調度器:勾選則啟用調度器持續(xù)時間(秒):設置腳本跑多久(如需要讓腳本跑一分鐘,則填入60)啟動延遲(秒):延遲多少秒才開始執(zhí)行腳本l 添加“聚合報告”聚合報告是一個監(jiān)聽器,作用是,為本次壓力測試整理出一份“報表”l 點擊按鈕讓我們來看看5并發(fā)循環(huán)100次的結果l 點擊按鈕,清除上次測試結果,然后來看看10并發(fā)循環(huán)100次結果可以看到5并發(fā)時,Throughput為13.0/sec;10并發(fā)時:Throughput為22.6/sec。理論上,并發(fā)數(shù)與吞吐量成正比,并發(fā)越多,吞吐量越大。實際上,服務器的處理能力和網絡帶寬是有限的,當并發(fā)數(shù)達到一定數(shù)量之后,吞吐量不隨并發(fā)數(shù)增加而增長,出現(xiàn)響應時間變長,甚至服務器宕機等狀況,稱之為服務器的性能“瓶頸”。簡單來說,性能測試就是根據(jù)服務器的“瓶頸”,來評估服務的性能是否能夠達到期望。附:表頭說明Label -如圖,在不勾選Include group name in label?復選框的情況下,為請求取樣器的名稱,否則為“請求取樣器所在線程組:請求取樣器名稱”# Samples -用同一個請求取樣器,發(fā)送請求的數(shù)量(注意:該值是不斷累計的)。比如,10個線程數(shù)設置為10,迭代10次,那么每運行一次測試,該值就增加10*10=100Average -默認情況下是單個Request的平均響應時間,當使用了Transaction Controller時,也可以以Transaction為單位顯示平均響應時間Median -中位數(shù)。表示響應時間本不大于該時間值的請求樣本數(shù)占總數(shù)的50%90% Line -表示響應時間不大于該時間值的請求樣本數(shù)占總數(shù)的90%Min -針對同一請求取樣器,請求樣本的最小響應時間Max -針對同一請求取樣器,請求樣本的最大響應時間Error % -出現(xiàn)錯誤的請求樣本的百分比Throughput -吞吐量以“requests/second、requests /minute、requests /hour”來衡量。時間單位已經被選取為second,所以,顯示速率至少是1.0,即每秒1個請求。當吞吐量被保存到CVS文件時,采用的是requests/second,所以30.0 requests/second在CVS中被保存為0.5Kb/sec -以Kilobytes/seond來衡量的吞吐量3.4. 附上演示腳本上面演示步驟最后保存的腳本,可以直接用Jmeter打開,運行。4. 錄制HTTP腳本當需要為多個接口做腳本時,手動編制就顯得太麻煩,這時候我們可以使用Jmeter自帶的腳本錄制功能。錄制原理是Jmeter啟用一個代理服務器,然后配置瀏覽器代理,Jmeter就可以對瀏覽器進行抓包,然后生成腳本。4.1. Jmeter配置代理服務器并錄制腳本4.1.1. 添加線程組l 右鍵“測試計劃”-“添加”-“Threads(Users)”-“線程組”4.1.2. 添加錄制控制器l 右鍵“線程組”-“添加”-“邏輯控制器”-“錄制控制器”4.1.3. 添加代理服務器l 右鍵“工作臺”-“添加”-“非測試元件”-“Http代理服務器”l 配置代理服務器1. 端口:用默認的8888就好,如果沖突,可以換一個不沖突的端口號。2. HTTPS Domains:默認本機localhost 3. 目標控制器:選擇 測試計劃線程組錄制控制器4. 分組:選擇 每個組放入一個新的控制器然后點擊“啟動”,彈出的提示框點擊“確定”,代理就啟動成功了。l 添加“察看結果樹”右鍵“HTTP代理服務器”-“添加”-“監(jiān)聽器”-“察看結果樹”4.1.4. 設置瀏覽器代理Jmeter代理服務器啟動之后,再設置瀏覽器代理,就可以抓包了。不同瀏覽器的代理設置方式不一樣。一般來說,瀏覽器都是在設置系統(tǒng)代理,一個瀏覽器設置了代理,其它瀏覽器也會用這個代理。下面介紹三種常用瀏覽器代理的設置方法。. IE瀏覽器1. 點擊“工具”-“Internet選項”2. 在新打開的窗口中選擇“連接”,點擊“局域網設置(L)”3. 在彈出窗口,選中“為LAN使用代理服務器(這些設置不用于撥號或VPN練級)(X)”,然后在“地址(E)”填入localhost,“端口(T)”填入剛設置的代理端口號8888。然后點擊“確定”完成配置。. Google Chrome(谷歌瀏覽器)1. 點擊右上角,展開菜單,點擊“設置”2. 點擊最下方“顯示高級設置.”,找到“更改代理服務器設置.”,點擊3. 彈出新窗口后,剩下的操作照著IE瀏覽器設置代理的2、3就可以了. Firefox(火狐瀏覽器)1. 點擊右上角,展開菜單,點擊“選項”2. 選擇“高級”-“網絡”,點擊“設置(E).”3. 在新窗口配置代理:選擇“手動配置代理:(M)”,“HTTP代理:(M)”填入“l(fā)ocalhost”,“端口:(P)”填入“8888”,點擊“確定”,設置完成。Tip:這里設置的代理是設置的自己的,不會影響系統(tǒng)代理設置。4.1.5. 錄制腳本所有準備工作都做完,可以開始錄制腳本了,還用上面舉例的接口,這里嘗試錄制該接口的腳本。1. 在一個設置好代理的瀏覽器中打開該接口,用Google Chrome演示一下2. 然后我們看看Jmeter,這里捕獲了這次請求的信息,并在“錄制控制器”下生成了一條Http請求,如下3. 將需要的Http請求拉倒“線程組”下,然后清空“錄制控制器”,然后就可以開始下一個接口的錄制4. 錄制完成之后,在線程組下添加“察看結果樹”,“Ctr+S”保存腳本,運行一下,看到兩條請求都成功了,一個腳本就錄制成功了!4.1.6. 一個未解決的問題在錄制腳本時,會發(fā)現(xiàn)很多無用的請求干擾,在這里Jmeter代理提供了一個過濾器,如接口是*.html的,使用“.*/*.html”過濾。這里配置了過濾,總不好用,要么什么也沒過濾掉,要么都過濾沒了,還有把需要的一部分也過濾沒了。鑒于此,錄制腳本時,盡量少開其它網頁,減少干擾。如有哪位知道怎么設置這個過濾器,請告知,感激不盡。5. TCP測試就像簡介上說的,Jmeter不單可以做Web測試,也可以TCP測試。TCP腳本跟HTTP腳本做成十分類似,但是有些地方會不同,還是啰嗦介紹一下。5.1. 創(chuàng)建一個TCP測試樁先創(chuàng)建一個簡單的TCP服務器,用來學習Jmeter的TCP測試,這個服務器只做一個事情,就是收到一個報文,然后給一個響應。這是從網上找的一份簡單的TCP服務器代碼,python語言寫的,直接運行就好,端口是8888,IP則為運行該腳本的機器的IP地址。l 問題:怎么運行這個服務器?答:有很多方法可以啟動,介紹一種簡單的,找一個Linux服務器,上傳這個文件,然后執(zhí)行命令python threadServer.py就OK了。5.2. 創(chuàng)建TCP測試腳本和HTTP測試腳本類似5.2.1. 添加線程組l 右鍵“測試計劃”-“添加”-“Threads(Users)”-“線程組”5.2.2. 添加“TCP取樣器”l 右鍵“線程組”-“添加”-“Sampler”-“TCP取樣器”l 看下“TCP取樣器”的參數(shù)1. 這里填服務器IP2. 端口號3. 超時時間,左邊連接超時,右邊響應超時,單位都是毫秒4. EOL,每個最后一個字符的byte值,這個是用來校驗接收報文是否結束5. 這里是需要發(fā)送的報文5.2.3. 添加監(jiān)聽器l 右鍵“線程組”-“添加”-“監(jiān)聽器”,選擇“察看結果樹”到這一步,一個TCP測試腳本就完成了,整體效果如下5.2.4. 運行腳本l 點擊按鈕,運行腳本,察看結果右邊框里的就是TCP服務器響應報文,腳本這就跑通了服務器后臺響應注:這里對EOL特殊說明一下,第一次運行腳本,不知道這個EOL填寫什么,可以先運行腳本,然后手動停止運行腳本,如下然后見到如下結果腳本執(zhí)行失敗,但是我們仍然獲得了響應報文,將最后一個字符2轉換為byte值就是50,所以之前的EOL填入50。5.2.5. 發(fā)送16進制字節(jié)流報文上面介紹的都是工具默認的文本報文,Jmeter同樣支持發(fā)送16進制報文,我們只需要修改一個參數(shù)值就好了。l 修改Jmeter參數(shù)右鍵“工作臺”-“非測試元件”-“Property Display”找到參數(shù)tcp.handler,如下修改其值為BinaryTCPClientImpl就OK了,如果發(fā)現(xiàn)這個參數(shù)沒有生效,按F5刷新一下。Tips:1. tcp.handler有三種設置:TCPClientImpl:文本數(shù)據(jù)BinaryTCPClientImpl:傳輸二進制數(shù)據(jù),指定包結束符。LengthPrefixedBinaryTCPClientImpl:數(shù)據(jù)包中前2個字節(jié)為數(shù)據(jù)長度。2. 上面介紹的修改參數(shù)是臨時的,重啟Jmeter之后就會還原,需要永久修改的可去修改bin目錄下的配置文件perties中的參數(shù)tcp.handler,重啟Jmeter生效。l 發(fā)送16進制字節(jié)流報文,腳本需要做如下調整6. UDP測試Jmeter做UDP測試,需要下載插件支持,這里先不介紹Jmeter插件安裝,上面提供的Jmeter已配置好插件。6.1. 創(chuàng)建一個UDP測試樁這里用python做了一個簡單的udp服務器,該服務器只會一件事情,就是將收到的報文內容返還給你。運行該服務器的方法同5.1一樣,找一個Linux服務器,上傳該python文件,執(zhí)行命令“python udpServer.py”,該服務器端口為54321,IP為Linux服務器的IP地址。6.2. 創(chuàng)建UDP測試腳本6.2.1. 添加線程組l 右鍵“測試計劃”-“添加”-“Threads(Users)”-“線程組”6.2.2. 添加“jpgc - UDP Request”l 右鍵“線程組”-“添加”-“Sampler”-“jpgc - UDP Request”l 配置“jpgc - UDP Request”1. 服務器IP地址2. UDP服務器端口號3. 勾選等待返回報文,不勾選則只管發(fā)送報文,不接收4. 等待返回報文的超時時間5. 發(fā)送報文的編碼格式,這里可以手動編輯 kg.apc.jmeter.samplers.HexStringUDPDecoder 直接發(fā)送16進制數(shù)據(jù),HEX-encoded kg.apc.jmeter.samplers.UDPSample
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游管理考試題及答案
- 痛風護理考試題及答案
- 交通運輸與物流:物流行業(yè)物流信息化建設對物流行業(yè)消費者滿意度的影響報告
- 理財入門考試試題及答案
- 天津醫(yī)科大學《微電影創(chuàng)作》2023-2024學年第二學期期末試卷
- 未來電動車技術變革對于消費者的影響研究試題及答案
- 沉浸式戲劇與社交網絡營銷結合的市場推廣模式研究報告
- 有機化學分子連接與斷裂原因分析試題及答案
- 教師教學反思與改進技術方法試題及答案
- 職場環(huán)境中的商務英語應用實例試題及答案
- 2025-2030中國船用導航雷達行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資前景研究報告
- 臨床類面試真題及答案
- 礦山探礦證轉讓合同協(xié)議
- 離散數(shù)學中的網絡科學研究-全面剖析
- 外包免責協(xié)議書模板
- 廣東省廣州市2025屆普通高中畢業(yè)班綜合測試(二)物理試題(含答案)
- 護士執(zhí)業(yè)資格考試資料2024
- 貴州省考試院2025年4月高三年級適應性考試歷史試題及答案
- 五一節(jié)后復工復產培訓
- 西部計劃面試題目及答案
- 2025靜脈治療規(guī)范
評論
0/150
提交評論