您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
JMeter測試WEB性能入門
作者:白灰 發(fā)布時間:[ 2017/6/28 10:09:44 ] 推薦標簽:性能測試 性能測試工具 單元測試

  四.主要參數(shù)設(shè)置和聚合報告分析
  1.創(chuàng)建一個簡單的測試內(nèi)容
  1.測試目標網(wǎng)站是www.baidu.com
  2.測試目的是該網(wǎng)站在負載達到20 QPS時的響應時間
  2.建立測試計劃
  1.啟動JMeter后,JMeter會自動生成一個空的測試計劃,用戶可以基于該測試計劃建立自己的測試計劃。

  2.一個性能測試請求負載是基于一個線程組完成的。一個測試計劃必須有一個線程組。測試計劃添加線程組非常簡單。在測試計劃右鍵彈出下拉菜單(添加-->Threads(Users)--->線程組)中選擇線程組即可。
  JMeter中 每個測試計劃至少需要包含一個線程組,當然也可以在一個計劃中創(chuàng)建多個,這些線程組是同時被初始化并同時執(zhí)行線程組下的Sampler的。

  3.設(shè)置基本參數(shù)

  線程組主要包含三個參數(shù):線程數(shù)、準備時長(Ramp-Up Period(in seconds))、循環(huán)次數(shù)。
  1.線程數(shù):虛擬用戶數(shù)。一個虛擬用戶占用一個進程或線程。設(shè)置多少虛擬用戶數(shù)在這里也是設(shè)置多少個線程數(shù)
  2.準備時長:設(shè)置的虛擬用戶數(shù)需要多長時間全部啟動。如果線程數(shù)為20 ,準備時長為10 ,那么需要10秒鐘啟動20個線程。也是每秒鐘啟動2個線程
  3.循環(huán)次數(shù):每個線程發(fā)送請求的次數(shù)。如果線程數(shù)為20 ,循環(huán)次數(shù)為100 ,那么每個線程發(fā)送100次請求?傉埱髷(shù)為20*100=2000 。如果勾選了“永遠”,那么所有線程會一直發(fā)送請求,一到選擇停止運行腳本
  這里我們根據(jù)20QPS的負載分別設(shè)置這三個參數(shù)為20、10、10
  4.添加HTTP請求
  添加完成線程組后,在線程組上右鍵菜單(添加--->Sampler--->HTTP請求)選擇HTTP請求。對于JMeter來說,取樣器(Sampler)是與服務(wù)器進行交互的單元

  一個HTTP請求的配置參數(shù)主要包括:
  1.名稱:本屬性用于標識一個取樣器,建議使用一個有意義的名稱
  2.注釋:對于測試沒有任何作用,僅用戶記錄用戶可讀的注釋信息
  3.服務(wù)器名稱或IP :HTTP請求發(fā)送的目標服務(wù)器名稱或IP地址
  4.端口號:目標服務(wù)器的端口號,默認值為80
  5.協(xié)議:向目標服務(wù)器發(fā)送HTTP請求時的協(xié)議,可以是http或者是https ,默認值為http
  6.方法:發(fā)送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等
  7.Content encoding :內(nèi)容的編碼方式,默認值為iso8859
  8.路徑:目標URL路徑(不包括服務(wù)器地址和端口)
  9.自動重定向:如果選中該選項,當發(fā)送HTTP請求后得到的響應是302/301時,JMeter 自動重定向到新的頁面。
  10.Use keep Alive :當該選項被選中時,JMeter 和目標服務(wù)器之間使用 Keep-Alive方式進行HTTP通信,默認選中
  11.Use multipart/from-data for HTTP POST :當發(fā)送HTTP POST 請求時,使用Use multipart/from-data方法發(fā)送,默認不選中
  12.同請求一起發(fā)送參數(shù):在請求中發(fā)送URL參數(shù),對于帶參數(shù)的URL ,JMeter提供了一個簡單的對參數(shù)化的方法
  13.同請求一起發(fā)送文件:在請求中發(fā)送文件,默認不選中,如果用戶只希望獲取頁面中的特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達式,這樣,只有能匹配指定正則表達式的URL指向資源會被下載。
  14用作監(jiān)視器:此取樣器被當成監(jiān)視器,在Monitor Results Listener 中可以直接看到基于該取樣器的圖形化統(tǒng)計信息。默認不選中


  這里我們添加一個百度的HTTPS請求

  5.設(shè)置qps
 。1)JMeter提供了一個非常有用的定時器,稱為Constant Throughput Timer (常數(shù)吞吐量定時器),該定時器可以方便地控制給定的取樣器發(fā)送請求的吞吐量。右鍵點擊fnng.cnblogs.com ,彈出菜單(添加--->定時器--->Constant Throughput Timer)選擇Constant Throughput Timer

  (2)Constant Throughput Timer 的屬性包括:
  Target throughput(in samples per minute):目標吞吐量。注意這里是每分鐘發(fā)送的請求數(shù),因此,對應測試需求中所要求的20 QPS ,這里的值應該是1200
  Calculate Throughput based on :有5個選項,分別是:
  This thread only :控制每個線程的吞吐量,選擇這種模式時,總的吞吐量為設(shè)置的 target Throughput 乘以線程的數(shù)量
  All active threads :設(shè)置的target Throughput 將分配在每個活躍線程上,每個活躍線程在上一次運行結(jié)束后等待合理的時間后再次運行;钴S線程指同一時刻同時運行的線程。
  All active threads in current thread group :設(shè)置的target Throughput將分配在當前線程組的每一個活躍線程上,當測試計劃中只有一個線程組時,該選項和All active threads選項的效果完全相同。
  All active threads (shared ):與All active threads 的選項基本相同,的區(qū)別是,每個活躍線程都會在所有活躍線程上一次運行結(jié)束后等待合理的時間后再次運行
  All cative threads in current thread group (shared ):與All active threads in current thread group 基本相同,的區(qū)別是,每個活躍線程都會在所有活躍線程的上一次運行結(jié)束后等待合理的時間后再次運行
  這里為我們設(shè)置定時器的Target throughput為1200/分鐘(20 QPS),設(shè)置Calculate Throughput based on 的值為All active threads

  6.添加聚合報告
  腳本的主要部分設(shè)置完成后,需要通過某種方式獲得性能測試中的測試結(jié)果,在本例中,我們關(guān)心的是請求的響應時間。JMeter 中我們可在添加聚合報告,更為直觀的查看測試結(jié)果。添加聚合報告,右鍵點擊線程組,在彈的菜單(添加--->監(jiān)聽器--->聚合報告)中選擇聚合報告。

  7.執(zhí)行腳本
  剛剛我們設(shè)置的參數(shù)如下
  ---------------------------------------------------------------------------------------------------------------------------
  線程組:
  線程數(shù):20
  準備時長:10
  循環(huán)次數(shù):10
  --------------------------------------------------------------------------------------------------------------------------
  HTTP請求:
  名稱:baidutest
  服務(wù)器名稱或IP :www.baidu.com
  端口號:443
  Implementation :java
  協(xié)議:https
  方法:GET
  路徑:/
  --------------------------------------------------------------------------------------------------------------------------
  常數(shù)吞吐量定時器:
  Target throughput(in samples per minute):1200.0
  Calculate Throughput based on :All active threads
  ---------------------------------------------------------------------------------------------------------------------------
  點擊工具欄上的運行按鈕,或者點擊菜單欄“ 運行--->啟動 ” 或者使用快捷鍵ctrl+r 來運行程序。
  8.聚合報告
  執(zhí)行后的聚合報告如下圖


  其中每列的意義為
  label:每個JMeter的http request都有一個name屬性,這里是name屬性的值
  samples:表示這次測試中一共發(fā)出了多少個請求,例如這次我們模擬20個用戶,每個用戶迭代10次,那么這里顯示的是200
  average:平均響應時間
  median:50%用戶的響應時間
  90%line:90%用戶的響應時間
  min:小響應時間
  max:大響應時間
  error%:本次測試中出現(xiàn)錯誤的請求的數(shù)量/請求總數(shù)
  throughput:吞吐量-每秒完成的請求數(shù)
  KB/sec:每秒從服務(wù)器接收到的數(shù)據(jù)量
  通過結(jié)果可知本次測試baidu網(wǎng)站在負載達到20 QPS時的200個請求平均響應時間為61sec,通過
  接下來我們來看看如何根據(jù)我們的場景需要,進行腳本錄制和測試
  五.使用badboy錄制腳本
  1.badboy介紹
  Badboy是一款不錯的Web自動化測試工具,如果你將它用于非商業(yè)用途,或者用于商業(yè)用途安裝Badboy 的機器數(shù)量不超過5臺,你是不需要為它支付任何費用的。Badboy提供了將Web測試腳本直接導出生成JMeter 腳本的功能,并且這個功能非常好用,下面我們來看如何使用badboy錄制一個JMeter腳本,并供JMeter使用
  2.badboy安裝
  1.通過Badboy的官方網(wǎng)站下載Badboy的新版本http://www.badboy.com.au/
  2.安裝Badboy。安裝過程同一般的Windows 應用程序沒有什么區(qū)別,安裝完成后你可以在桌面和Windows開始菜單中看到相應的快捷方式——如果找不到,可以找一下Badboy安裝目錄下的Badboy.exe 文件,直接雙擊啟動Badboy
  3.使用badboy錄制腳本
  1.啟動Badboy,你可以看到下面的界面
  在地址欄中輸入你需要錄制的Web應用的URL——http://www.baidu.com

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

  3.錄制完成后,點擊工具欄中的“停止錄制”按鈕(圖中紫色方框標注的部分),完成腳本的錄制。選擇“File -> Export to JMeter”菜單,填寫文件名“baidu.jmx”,將錄制好腳本導出為JMeter腳本格式。

  4.啟動JMeter并打開剛剛生成的測試腳本,可以用JMeter進行測試了。

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