您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
Jmeter使用實踐- 基礎(chǔ)介紹
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2016/5/18 14:22:24 ] 推薦標簽:性能測試工具 LoadRunner

  隨著市場上推出越來越多的測試工具,大家使用起來也比較盲目,我個人而言,使用過LoadRunner和Jmeter
  很多人傾向于LoadRunner,因為LR的功能更強大,其實工具的選擇,不在于工具本身有多強大,取決于我們的實際需求
  我接觸的項目基本都是web應用,從性能測試需求的角度來說,性能測試工具需要具有以下一些特點
  1、支持HTTP/HTTPS協(xié)議,能夠發(fā)送HTTP/HTTPS請求
  2、可以實現(xiàn)不同的用戶場景,能夠根據(jù)實際業(yè)務(wù)模擬場景,對用戶的比例進行合理分配
  3、支持事務(wù);
  4、支持參數(shù)化和關(guān)聯(lián);
  5、可以生成報告;
  既然Jmeter滿足以上特性,使用特別靈活,又是免費的,所以我很明顯的偏向了JMeter
  以下是整理的相關(guān)jmeter的基礎(chǔ)介紹和一些術(shù)語
  1.基本介紹
  Jmeter是Apache組織的開放源代碼項目,是功能和性能測試的工具,它是的Java應用。Jmeter提供的操作界面支持多種配置和結(jié)果顯示。Jmeter能夠模擬對服務(wù)器或者網(wǎng)絡(luò)系統(tǒng)逐步加負載(壓測包括HTTP/FTP/JDBC/JAVA等)。Jmeter支持多線程并發(fā)取樣和單線程組對不同的功能同時取樣。Jmeter也可以作為Web服務(wù)器與瀏覽器之間的代理網(wǎng)關(guān),以便捕獲瀏覽器的請求和Web服務(wù)器的響應。
  Jmeter包含4部分:
  負載發(fā)生器:用于產(chǎn)生負載,通常以多線程或多進程的方式模擬用戶行為。
  用戶運行器:通常是一個腳本運行引擎,用戶運行器附加在線程或進程上,根據(jù)腳本要求模擬指定的用戶行為。
  資源生成器:用于生成測試過程中服務(wù)器、負載機的資源數(shù)據(jù)。
  報表生成器:根據(jù)測試分析結(jié)果生成報表,提供可視化的數(shù)據(jù)展現(xiàn)方式
  2.基礎(chǔ)元件介紹
  測試計劃是測試計劃是性能測試的起點,其它元件都需要依賴測試計劃,是所有元件的容器
  2.1 線程Threads(Users)
  2.1.1線程組
  (1) 取樣錯誤后要執(zhí)行的動作
  a.繼續(xù):默認選項,出錯后后續(xù)的線程繼續(xù)運行
  b.Start Next Thread Loop:出錯后啟動下一組線程運行
  c.停止線程:后續(xù)的線程停止運行,但是會返回出錯前的結(jié)果
  d.停止測試:與停止線程的差異在于不返回出錯前的結(jié)果
  (2)線程數(shù):虛擬用戶數(shù),代表發(fā)送請求的用戶數(shù),一個線程數(shù)占用一個進程或線程。
  (3)Ramp-Up Period(in seconds)-準備時長
  -所有線程在多少時間內(nèi)啟動,單位是秒,為0時代表一次請求即并發(fā)。如果線程數(shù)為5,Ramp-Up Period為10
  (4)循環(huán)次數(shù)
  -每個線程發(fā)送請求的次數(shù)。如果線程數(shù)為20,循環(huán)次數(shù)為100,那么每個線程發(fā)送100次請求,總 請求數(shù)是2000
  (5)Delay Thread Creation until needed:直到需要時延遲線程的創(chuàng)建
  (6)調(diào)度器:設(shè)定測試運行時間
  2.2配置元件
  2.2.1 CSV Data Set Config
  參數(shù)化配置,一般用在數(shù)據(jù)驅(qū)動,通過文件來存儲測試數(shù)據(jù)。調(diào)用時也支持參數(shù)化一部分數(shù)據(jù)。Jmeter參數(shù)化方式是一次讀入一行,分割后存入若干變量中交給一個線程處理。
  2.2.2 HTTP信息頭管理器
  2.2.3 HTTP Cookie管理器
  2.2.4 HTTP COOKIE Manager管理cookie
  每個Jmeter線程都有自己的session
  2.3前置處理器
  全局的參數(shù)設(shè)置,設(shè)置后每次請求前讀取的值,比如地址、端口、token
  2.4后置處理器(Post Processors)
  正則表達式提取器可以從請求的響應結(jié)果中提取需要的內(nèi)容,從而實現(xiàn)關(guān)聯(lián)
  (1)引用名稱:外部引用時使用
  (2)正則表達式:提取的內(nèi)容需要用()括起來。
  (3)模板:使用$$引用起來 ,值從1開始
  (4)匹配數(shù)據(jù)(0代表隨機):0代表隨機,-1代表所有,其余正整數(shù)代表將在已提取的內(nèi)容中匹配第 幾個內(nèi)容
  (5)缺省值:正則匹配失敗時,取的值。
  2.5Sampler(取樣器)
  sampler是與服務(wù)器進行交互的單元
  (1)HTTP請求
  (2)Web服務(wù)器
  (3)Http請求
  (4)Parameters參數(shù)
  2.6監(jiān)聽器
  2.6.1 聚合報告
  聚合報告的相關(guān)指標:
  (1)Label:每個 Jmeter 的 element (例如 HTTP Request )都有一個 Name 屬性,這里顯示的是 Name 屬性的值。
  (2) #Samples:表示你這次測試中一共發(fā)出了多少個請求,如果測試計劃模擬10個用戶,每個用戶迭代10次,這里會顯示100。
  (3) Average:平均響應時間,默認情況下是單個 Request 的平均響應時間,使用了事務(wù)控制器后表示為整個事務(wù)的平均響應時間。
  (4) Median: 50 %用戶的響應時間。
  (5) 90% Line: 90 %用戶的響應時間。
  6) Min:小響應時間。
  (7) Max:大響應時間。
  (8) Error%:錯誤率,本次測試中出現(xiàn)錯誤的請求的數(shù)量 / 請求的總數(shù)。
  (9) Throughput:吞吐量,默認情況下表示每秒完成的請求數(shù)( Request per Second )。當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數(shù) KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量,相當于LoadRunner中的Throughput/Sec。
  (10) KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量。
  2.6.2 查看結(jié)果樹
  (1)Thread Name: 線程組名稱
  (2)Sample Start: 啟動開始時間
  (3)Load time: 加載時長
  (4)Latency: 等待時長
  (5)Size in bytes: 發(fā)送的數(shù)據(jù)總大小
  (6)Headers size in bytes: 發(fā)送頭大小
  (7)Body size in bytes: 發(fā)送數(shù)據(jù)的其余部分大小
  (8)Sample Count: 發(fā)送統(tǒng)計
  (9)Error Count: 交互錯誤統(tǒng)計
  (10)Response code: 返回碼
  (11)Response message: 返回信息
  (12)Response headers: 返回的頭部信息
  2.7斷言
  確定Jmeter有沒有按照預期工作,應當考慮使Jmeter提供的斷言,加到Sampler 里面可以對返回的結(jié)果進行判斷,例如判斷HTTP返回結(jié)果里面是否含有某個字符串
  附上一張jmeter的界面截圖

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