您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
Jmeter錄制復雜web測試腳本
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2016/12/8 16:45:17 ] 推薦標簽:性能測試工具 Jmeter

  jmeter的功能簡單,不需要有腳本語言的編寫經(jīng)驗,純圖形界面添加測試場景, 用起來上手很快。但是如果手動添加每一個web(http/https)請求,費時又費力。而且有可能后手動編寫的和實際發(fā)的請求有出入。
  1web性能測試以及web http請求基本原理。
  再介紹錄制jmeter腳本之前,我們先談一下web性能測試。web是調(diào)用http/https接口, 其實沒有是什么復雜度可言。只是我們必須清楚,對于一個網(wǎng)站說,一個頁面并通常不是只有一個http請求。如果需要測試一個rich web page,必須了解到這一點(測試http接口則簡單的許多,只是單一的http接口請求)。
  例如這樣一個頁面(下面是html代碼)

  如果向服務(wù)器請求上面的一個頁面,則除了本身頁面的請求本身,還有一個css和img的資源。這樣打開這樣一個頁面,本需要有三個http請求。
  1. http1 -> get the web page (首先獲取你要訪問的頁面的html代碼)
  2. the web page contain two resources (假設(shè)該頁面,有一個css資源和一個圖片)
  3. then request  http2 and http3 to  get the css file and image respecitively. (則會繼續(xù)發(fā)起獲取css和圖片的請求)
  所以這樣是發(fā)起了3個http請求,才完整的打開了一個頁面。瀏覽器實際是這么做的,但瀏覽器作了很多優(yōu)化。 (比如多線程[一般2-6個http connection,不同瀏覽器內(nèi)核不同],  http keep-alive,緩存圖片,css等資源)。說道這里,不得不佩服loadrunner的強大。他可以盡量模擬瀏覽器的這些行為,來保證測試的結(jié)果準確性。但這些參數(shù)都可以動態(tài)調(diào)整的。(通常我們錄制的富web頁面, 也是rich webpage, 通常需要使用事務(wù)控制器來輔助我們進行度量數(shù)據(jù), 關(guān)于事務(wù)控制器請訪問"jmeter如何使用事務(wù)控制器")
  注意: 新的jmeter-plugins 已經(jīng)支持了webdriver sampler,  已經(jīng)可以模擬瀏覽器的行為,更真實的模擬用戶訪問web的行為, 可以得到更真實的性能數(shù)據(jù). 具體是否使用,還需要根據(jù)自己的測試場景進行判斷. (作者目前并不建議盲目的使用, 需要慎重考慮. 原因: 用戶體驗方面的性能測試可以由其他工具完成, 而性能測試則專注于特定的問題 )
  具體資料信息,請訪問 http://jmeter-plugins.org/wiki/WebDriverSet/
  2。實際錄制腳本
  好,那么我們現(xiàn)在來實際錄制腳本吧,并且體驗一下真正一個頁面的實際http請求過程。這里我們只談http,https不在本文所講范圍內(nèi)。
  錄制腳本目前有2種方法,我們先介紹jmeter proxy方法。另一個是badboy錄制的腳本轉(zhuǎn)化為jmeter腳本,直接想了解badboy,請直接訪問
  http://www.badboysoftware.biz/docs/jmeter.htm
  jmeterproxy 來了。
  1)啟動jmeter,這個不多說了。
  2)選擇測試計劃,右鍵添加線程組(thread group)
  3)選擇這個線程組,右鍵添加config element -〉 http默認請求

  4)在http默認請求單元,填入server name 為jakarta.apache.org. 這個是我們要錄制的頁面。其他地方不填
  5)然后選擇剛才那個縣城組,右鍵加入一個錄制控制器。位于Add>Logic Controllers -> Recording Controller
  6) 選擇WorkBench,右鍵加入 Non-Test Elements -> Http proxy server
  7)在http proxy server里, 的patterns to include 里,寫入.*.html  這個是正則表達式,意思是錄制所有的html為后綴名的頁面。 那么如果你要錄制后綴名為jsp或者do的,則寫入.*.jsp  和 .*.do 分別。
  8)對于url patterns to excllude的地方,是寫入不想被錄制的一些資源文件url(往往我們根據(jù)后綴名來進行區(qū)分)。比如不想錄制http發(fā)起獲取圖片的請求,需要寫上*.jpg 或者 *.png !∵@些是否配置,視測試的具體場景而定。比如是否要測試靜態(tài)圖片等。
 。梗榱苏{(diào)試錄制的情況,我們選擇http proxy server ,添加一個察看結(jié)果樹監(jiān)聽器。這個以前我們曾經(jīng)用過。

 。保埃┗氐絟ttp proxy server然后,選擇開始啟動。這樣proxy server 啟動了。
 。保保┻@樣我們打開一個瀏覽器,將瀏覽器的代理設(shè)置為jmeter proxy server 的ip和端口號!∫驗閜roxy server 在本地,所以寫localhost 和端口即可。
 。保玻┰O(shè)置好代理后,用瀏覽器訪問http://jakarta.apache.org/jmeter/index.html
 。保常╇S便點擊一些連接,然后回到j(luò)meter 的窗口,你查看結(jié)果樹看到了錄制的http請求了。

 。保矗┻@樣的腳本,我們稍做修改,可以使用了。
 

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd