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

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

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

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

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

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

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