Jmeter壓力測試和代理錄製

壓力或者說是性能測試

1.打開jmeter,新建線程

步驟二  使用Jmeter測試未登錄頁面

    運行軟件之後,我們當然要找個鏈接測試一下啦,這裏我們以百度爲例,我們右擊“測試計劃”——“添加”——“Threads(Users)——線程組”,這樣就建了一個線程組了,這是幹嘛,當然是跑線程用的啊。有了線程組之後,我們再右擊線程組,“添加”——“配置元件”——“http請求默認值”,這個默認值是幹嘛的?裏面可以設置一些常用的默認的設置(這不是廢話嘛~),在http請求默認值面板裏面,我們可以輸入要測試的服務器的IP或者域名,這裏我們輸入“www.baidu.com”,協議是“https”,你要測試的網址如果是http開頭那就填“http”,其他默認不管了,這時候點擊左上角保存會彈出一個保存框,這是讓你保存你現在所做的測試配置,以後需要再測試的話的直接打開保存的jmx文件就行了。保存完了之後,我們再右擊“線程組”——“添加”——“Sampler”——“http請求”,哎,剛剛不是添加過了嗎?剛剛那個不是哦,剛剛那個只是默認值,只是用來設置一些默認配置,真正發起請求的是“http請求”,在http請求裏面我們在“路徑”裏面輸入斜槓“/”就行啦,表示默認路徑,IP那一欄就不用輸入了,爲什麼呢?因爲在http請求默認值裏面已經輸過啦,以後可以新建多個http請求,只要修改路徑就行了,這樣就可以訪問同一個網站的不同頁面,這就是“http請求默認值”的意義所在,把一些共用的設置寫一遍就好了。接着,我們再右擊“線程組”——“添加”——“監聽器”——“察看結果數”,在這裏可以查看到http請求和結果。每次新建組件和修改配置信息都要點擊保存,好了,頁面配置圖如下所示:

    

 

    現在我們點擊工具欄的綠色運行按鈕,就可以在“察看結果樹”中看到結果了

 

    我們新建的“http請求”返回結果200,表明請求成功,從綠色打鉤也能看出,上圖中的下拉列表框可以選擇顯示格式,我們選擇HTML,切換到“響應數據”就可以看到返回頁面,也就是百度首頁。

    當然如果是單一測試一個頁面,類似於接口測試,也可以不添加默認請求,只添加一個http請求,輸入值也可以。

 

    步驟三  設置線程併發數

    剛剛我們完成了一個簡單的測試,你也應該感覺到自己啥也沒幹,就能測試了,其實不然,我們點擊“線程組”可以看到線程組的設置頁面,默認設置1個線程,1秒啓動,循環1次。線程數表示啓動多少個線程,Ramp-Up Period表示花多長時間啓動所有線程,循環次數表示每個線程的執行次數,例如,我設置線程數10,Ramp-Up Period爲10,循環次數2,表示軟件將在10秒內啓動10個線程,也就是1秒啓動1個線程,每個線程執行兩次請求。

 

    此外,我們還可以勾選“調度器”,比如我填入持續時間100,啓動延遲0,將循環次數勾選“永遠”,表示線程立即啓動,執行100秒後停止,注意,如果設置了持續時間和啓動延遲,那麼下面的啓動時間和結束時間就不起作用了,也就不用管了,點擊運行即可。

    步驟四  設置其他監聽器

    之前我們僅僅設置了“察看結果樹”這個監聽器,我們右擊“線程組”——“添加”——“監聽器”,裏面有好多監聽器可供選擇,比如圖形結果,用表格查看結果,聚合報告等等,這些都是反映測試過程的指標數據。圖形結果以圖形的形式顯示吞吐量、偏移、平均值等信息,表格結果顯示每一次請求的時間,返回,發送字節數,連接時間等等,聚合報告裏面顯示總體請求的吞吐量,錯誤率等等。下圖爲表格結果的樣式。

 

    可以看出,圖中顯示了20個Http請求,分別由10個線程執行,每個線程執行兩次,正好符合我們對於線程組的設置。圖中每一列的含義分別表示請求序號,開始時間,線程序號,請求名,請求所花的時間,請求狀態,請求字節數,發送字節數,等待時長,連接時間。

    聚合報告如下圖所示,每一列的含義分別表示請求名稱,請求總數,請求的平均響應時間(毫秒),50%的請求的響應時間,90%的請求的響應時間,95%的請求的響應時間,99%的請求的響應時間,最小的響應時間,最大的響應時間,錯誤的請求率(錯誤請求數/總的請求數),吞吐量(每秒處理的請求數),接收的字節速率,發送的字節速率。

 

    步驟五  登錄測試

    前面我們測試的頁面是不需要登錄的,現在我們來測試一下登錄操作,由於登錄操作涉及到具體的內部網址和參數,我這裏就用一般網址和參數代替,但是方法是一樣的,例如,我們內網IP是1.1.1.1,登錄頁面是1.1.1.1/login.do,我們將1.1.1.1填入“http請求默認值”,將/login.do填入“http請求”的路徑裏面,關於登錄需要的參數我要特別說明一下,一般來說就是用戶名和密碼,但是往往還需要其他參數,我們可以通過抓包工具Fiddler進行抓包,我們在網站中進行一次正常登錄,可以在Fiddler中看到登錄需要的post參數,和路徑,例如Fiddler中顯示登錄操作post參數有username,password,type,那麼需要在“http請求”裏面填入,下圖所示。

 

    點擊“添加”按鈕就可以添加參數了,保存好後,我們點擊運行,就可以在察看結果樹中看到登錄成功後的頁面了,具體的操作和前面一樣的。

  如果登錄頁抓取到多個,最好添加多個請求或者利用文件讀取器,加載各個網頁。這樣纔是更準備測試完整的登陸過程,如果只是第一步輸入用戶名和密碼,更接近接口測試,是對服務器的壓力測試,如果所有頁面都添加進去,類似錄製後的會加載包括css、js等內容後的測試是主要包括前端的測試,使用過程是要加載前端的,所以一般要都添加進去,並選中後添加到同一事物下,此時就和loadrunner錄製添加的事物一個道理了。了。並不能正確的反應登錄時間,如:

    步驟六  會話保持

    我們進入登錄後的頁面後,我還想訪問例如“我的賬戶”,“我的信息”等模塊怎麼辦,這些網頁需要登錄成功後才能訪問到,這裏我們就需要進行會話的保持,我們右擊“線程組”——“添加”——“配置元件”——“httpcookie管理器”,要添加的內容我們可以在察看結果樹的“請求”選項卡里面看到,裏面可以看到登錄需要的cookie,例如JSESSIONID,我們將JSESSIONID填入cookie管理器的參數裏面,如下

查看jsessionid可以在fiddle等抓包工具中查看,

    此時,我們在http請求裏面輸入登錄後的頁面網址,例如“我的信息”等等,就可以請求成功啦。

    步驟七  文件讀取網址

    我們在“http請求”的路徑裏面填入的是我們要訪問的網頁,每次只能填一個,假如我想訪問好幾個網頁,例如首頁,通知頁,公司介紹頁等等,除了新建http請求外,我們還可以將這些網頁的地址存儲在TXT文件裏,例如,我要訪問1.1.1.1/index.do,1.1.1.1/information.do,1.1.1.1/company.do,我們可以這樣

 

    網址填入後,我們在Jmeter裏面的“選項”——“函數助手對話框”——“StringFromFile”,將TXT的完整路徑貼到圖中位置,點擊生成,可以在框裏生成TXT文件的讀取路徑。

 

    我們將$開頭的那串路徑貼到“http請求”的路徑裏面,就可以訪問到TXT裏面的所有網頁啦,如圖所示。

 

    步驟八  服務器狀態實時監聽

    上面我們介紹了幾個Jmeter自帶的監聽器,不知你是否感覺到有一點點無力,因爲裏面顯示的指標好像都不是你特別需要的,至少對於我來說,我更關心我的請求執行過程中服務器狀態的改變,例如CPU,內存,磁盤,網絡,TPS,響應時間圖等等,因爲這纔是壓力測試的目的所在,服務器狀態隨着請求增加的變化曲線纔是我們更加需要看到的。想看到服務器變化的曲線圖,我們需要下載JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar,將這兩個jar包放入Jmeter的安裝路徑下的lib/ext/下面,重啓Jmeter後,右擊“線程組”——“添加”——“監聽器”,我們可以看到多了好多監聽器,大多數以“jp@gc”開頭的監聽器,我們選擇“PerfMon Metrics Collector”,裏面將會顯示服務器的狀態信息,現在還看不到,爲什麼,因爲要測試的服務器需要安裝一個包,叫ServerAgent.zip,比如我的服務器是linux,我們將ServerAgent在服務器中解壓,運行裏面的startAgent.sh就可以啦,啓動起來後可以看到如下(將ServerAgent.zip在監控的機器中打開,如果監控本地機,即在本地打開就好。)

 

默認端口是4444,在這裏我要插一句,我當時運行後通過Telnet始終ping不到4444端口導致顯示不了,後來改成4445端口啓動就可以了,具體的服務器命令是ServerAgent-2.2.3/startAgent.sh--udp-port 4445 --tcp-port 4445,這樣就表示將serverAgent在4445端口啓動,你可以將4445換成其他端口,如果默認的4444端口不行的小夥伴可以試試其他端口哦。好了,我們回到Jmeter軟件,按下圖填入服務器的地址和端口號,以及需要監控的硬件,如CPU,內存,磁盤,網絡等等。

 

    好了,我們點擊運行,可以在chart下看到服務器的狀態變化曲線啦

 

    如果監聽一直不展示,可以將線程中的循環次數選擇爲永遠,之後就可以正常展示了

jmeter插件下載網址https://jmeter-plugins.org/downloads/all/

jmeter插件下載地址

 

代理錄製:

要想錄制所頁面內容,badboy並不是很好用,這裏可以使用本身自帶的代理錄製功能。

1.在工作臺下添加http代理服務器

2.設置代理參數:圖片中的端口處標記錯誤,此處的端口號應該和代理瀏覽器中的端口號保持一致。

    排除或包含中的url正則表達式爲.*\.css.*

3.此時jmeter部分設置完成,需要設置瀏覽器的代理,以火狐瀏覽器爲主:

4.設置完成後,保存,在jmeter中啓動代理,瀏覽器中就可以正常操作,查看jmeter中就會有錄製的內容了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章