![jmeter使用說明手冊_第1頁](http://file4.renrendoc.com/view2/M00/16/19/wKhkFmYod86AUBblAAFKqKpWAaM833.jpg)
![jmeter使用說明手冊_第2頁](http://file4.renrendoc.com/view2/M00/16/19/wKhkFmYod86AUBblAAFKqKpWAaM8332.jpg)
![jmeter使用說明手冊_第3頁](http://file4.renrendoc.com/view2/M00/16/19/wKhkFmYod86AUBblAAFKqKpWAaM8333.jpg)
![jmeter使用說明手冊_第4頁](http://file4.renrendoc.com/view2/M00/16/19/wKhkFmYod86AUBblAAFKqKpWAaM8334.jpg)
![jmeter使用說明手冊_第5頁](http://file4.renrendoc.com/view2/M00/16/19/wKhkFmYod86AUBblAAFKqKpWAaM8335.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第第頁Jmeter使用說明手冊1.Jmeter的工作原理工作原理Jmeter作為web服務(wù)器與客戶端之間的代理網(wǎng)關(guān),它通過代理方式截獲客戶端和服務(wù)器之間交互的數(shù)據(jù)流,這樣服務(wù)器和客戶端都以為是在一個真實運行環(huán)境中。2.環(huán)境安裝部署2.1安裝jdk注意事項JMeter3.2以上的版本需要JDK1.8以上的版本支持運行。JMeter可以運行在如下操作系統(tǒng)上:Unix,Windows和OpenVMS;JAVA的環(huán)境變量設(shè)置a.使用鼠標右擊“我的電腦”->屬性->高級->環(huán)境變量b.系統(tǒng)變量->新建->變量名:JAVA_HOME變量值:d:\jdkc.系統(tǒng)變量->編輯->變量名:Path在變量值的最前面加上:%JAVA_HOME%\bin;d.系統(tǒng)變量->新建->變量名:CLASSPATH變量值:e:運行->cmd->javaversion;Jdk下載地址:/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2.2安裝及運行jmeter;解壓zip/tar文件到你想安裝JMeter的目錄;運行解壓后的bin目錄下的jmeter.bat;如圖所示:2.2.1jmeter目錄介紹a.bin目錄:可執(zhí)行的目錄1).jmeter.bat:windows的啟動文件2).jmeter.log:日志文件3).jmeter.sh:linux的啟動文件4).perties:系統(tǒng)配置文件5).jmeter-server.bat:windows分布式測試要用到的服務(wù)器配置6).jmeter-serve:linux分布式要用到的服務(wù)器配置7).docs目錄:接口文檔目錄b.extras目錄:擴展插件目錄c.lib目錄:所用到的插件目錄,里面都是jar包,會自動在JMETER_HOME/lib和ext目錄下尋找需要的類d.liceses:jmeter證書目錄f.ptinrable_docs用戶使用手冊Jmeter下載地址:/download_jmeter.cgi3.建立一個基本的測試計劃4.Jmeter各元素的使用說明4.1線程介紹Testplan(測試計劃)setupthreadsgroup(環(huán)境初始化)threadgroupthreadgroup...teardowngroup(環(huán)境恢復(fù))Testplan:用來描述一個自動化測試,本次需要執(zhí)行的測試范圍,類似testlink上的測試計劃。threadgroup線程組:在自動化測試中可以是定義一個模塊或者定義一個業(yè)務(wù);在性能測試中,類似一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶;類似(LR中的action);setupthreadsgroup是一個特殊類型的線程組,執(zhí)行測試之前的動作,做初始化的工作,類似(LR中的init)跟pythonunittest里面setup函數(shù)是一個作用;自動化測試中,可以用于初始化測試環(huán)境;teardowngroup是一個特殊類型的線程組,執(zhí)行測試之后的動作,做測試結(jié)束的收尾的工作,類似(LR中的end)跟pythonunittest里面teardown函數(shù)是一個作用;在自動化測試中,可以用于恢復(fù)測試環(huán)境;4.2線程組的8類可執(zhí)行元件jmeter元素用途用途詳細說明配置元件(Configelement)定義常量值,參數(shù)配置配置數(shù)據(jù)庫連接參數(shù)配置http包頭信息配置http請求默認值配置獲取csv文件里的數(shù)據(jù)用戶自定義變量定時器(Timer)等待時間兩個操作之間的等待時間前置處理器(Perprocessors)處理sample中的參數(shù)用于在實際的請求發(fā)出之前對請求進行處理,例如需要保存請求中的參數(shù)或者修改請求中的參數(shù)值;后置處理器處理服務(wù)器返回值用于對sampler發(fā)出請求后得到的服務(wù)器響應(yīng)進行處理,一般用來提取響應(yīng)中特定數(shù)據(jù);斷言(assertions)檢查響應(yīng)數(shù)據(jù)是否符合預(yù)期斷言用于檢查測試中得到的響應(yīng)數(shù)據(jù)是否符合預(yù)期,斷言一般用來設(shè)置檢查點,用以保證性能測試過程中的數(shù)據(jù)交互是否與預(yù)期一致監(jiān)聽器展示請求處理情況是用來對測試結(jié)果數(shù)據(jù)進行處理和可視化展示的一系列元件取樣器(sampler)請求包取樣器是實際向服務(wù)器發(fā)出請求的請求包邏輯控制器執(zhí)行順序控制testplan中sampler節(jié)點發(fā)送請求的邏輯控順序的控制器用來組織可控制sampler節(jié)點的事物控制器,吞吐量控制器5.配置元件5.1CSVDataSetConfig用途:從csv文件中逐行讀取數(shù)據(jù);適合需要讀取大批量數(shù)據(jù)的應(yīng)用場景;5.2HTTP信息頭管理器用途:通知jmeter發(fā)送請求包的參數(shù)格式;是鍵值對,還是json格式;5.3HTTP請求默認值用途:如果后續(xù)的多個Sample請求的服務(wù)器地址和端口都是同一個,可以統(tǒng)一配置一個http請求默認值,這樣不需要每個sample上都配置一邊服務(wù)器地址和端口;5.4數(shù)據(jù)庫連接信息配置用途:配置jmeter中需要使用的數(shù)據(jù)庫連接信息JDBCRequest寫多條SQL語句Mysql:databaseURL結(jié)尾配置“?allowMultiQueries=true”,然后JDBCRequest里面sql語句記得帶封號結(jié)尾。Oracle:begin中間寫SQL語句,封號結(jié)尾end;5.5用戶定義的變量用途:配置整個線程組里的sample需要用到的變量,便于統(tǒng)一維護變量的值;6.邏輯控制器6.1ForEach控制器ForEach控制器在用戶自定義變量中讀取一系列相關(guān)的變量。該控制器下的采樣器或控制器都會被執(zhí)行一次或多次,每次讀取不同的變量值。所以ForEach總是和UserDefinedVariables一起使用。下面會以實例的形式介紹它的用法。6.2簡單控制器(SimpleController)作用:這是Jmeter里最簡單的一個控制器,它可以讓我們組織我們的采樣器和其它的邏輯控制器(分組功能),提供一個塊的結(jié)構(gòu)和控制,并不具有任何的邏輯控制或運行時的功能。6.3僅一次控制器用途:當一個循環(huán)邏輯里的有個業(yè)務(wù)只需要運行一次時,這個業(yè)務(wù)可以定義到僅一次控制器里;例如環(huán)境初始化6.4循環(huán)控制器用途:當需要循環(huán)執(zhí)行一組sample,例如需要針對一個接口測試一組數(shù)據(jù),就可以使用循環(huán)控制器;如果控制器允許用戶控制其子節(jié)點所表示的測試步驟是否執(zhí)行,下圖“條件”可以使用6.5如果(If)控制器用途:當需要進行if/else處理時選擇,例如注冊結(jié)果為用戶已存在,則直接登錄;函數(shù)(默認是Javascript語句)或變量,只要運行結(jié)果為true或false即可。使用上有些區(qū)別,舉個例子,原先我們可以使用條件為:${__jexl(${VAR}
==
23)},這將被評估為true或false,結(jié)果將被傳遞到JavaScript,然后返回true或false。如果選中“Interpret
Condition
as
Variable
Expression?”,直接會對變量表達式進行評估是否為true,而不需要使用Javascript進行解析。此外,變量表達式可以返回任何值,而JavaScript的條件必須返回true或false,否則將記錄錯誤。
當選擇“Evaluate
for
all
children?”時,該條件會對每個子節(jié)點進行判斷,不選則默認只執(zhí)行第一個子節(jié)點。
Javascript作為條件的例子:
(1)${COUNT}
<
10
(2)"${returnVar}"==""
(3)’${returnVar}’==’’
7.取樣器sample用途:向服務(wù)器發(fā)出的請求包參數(shù)及值;8.前置處理Sample請求包發(fā)出前的處理;8.1BeanShellPreProcessor用途:修改、保存,sample請求包中的數(shù)據(jù);JMeter在它的BeanShell中內(nèi)置了變量,用戶可以通過這些變量與JMeter進行交互,其中主要的變量及其使用方法如下:log:寫入信息到j(luò)meber.log文件,使用方法:(“Thisisloginfo!”);vars-(JMeterVariables):操作jmeter變量,這個變量實際引用了JMeter線程中的局部變量容器(本質(zhì)上是Map),它是測試用例與BeanShell交互的橋梁,常用方法:a)vars.get(Stringkey):從jmeter中獲得變量值b)vars.put(Stringkey,Stringvalue):數(shù)據(jù)存到j(luò)meter變量中更多方法可參考:org.apache.jmeter.threads.JMeterVariablesprev-(SampleResult):獲取前面的sample返回的信息,常用方法:a)getResponseDataAsString():獲取響應(yīng)信息b)getResponseCode():獲取響應(yīng)code9.后置處理Sample請求包請求后的結(jié)果處理;9.1BeanShellPostProcessor用途:處理sample請求包發(fā)出去后的,服務(wù)器返回的結(jié)果值;9.2JDBCPostProcessor用途:處理sample請求后,檢查數(shù)據(jù)庫中數(shù)據(jù)的變化;9.3正則表達式提取用于提取Sample請求發(fā)送后,服務(wù)器返回的響應(yīng)結(jié)果的數(shù)據(jù)提??;允許用戶從服務(wù)器的響應(yīng)中通過使用perl的正則表達式提取值。作為一個后置處理器,該元素會作用在指定范圍的取樣器,應(yīng)用正則表達式,提取所需要的值,生成模板字符串,并將結(jié)果存儲到給定的變量名中。在此簡單地向大家介紹一下常用的perl正則表達式的基礎(chǔ):.:匹配任何單個字符。例如Perl正則表達式r.t匹配這些字符串:rat、rut、rt,但是不匹配root$:匹配行結(jié)束符。例如Perl正則表達式weasel$能夠匹配字符串"He'saweasel"的末尾,但是不能匹配字符串"Theyareabunchofweasels."^:匹配一行的開始。例如Perl正則表達式^Whenin能夠匹配字符串"Wheninthecourseofhumanevents"的開始,但是不能匹配"WhatandWheninthe"*:匹配0或多個正好在它之前的那個字符。例如Perl正則表達式.*意味著能夠匹配任意數(shù)量的任何字符\:這是引用符,用來將這里列出的這些元字符當作普通的字符來進行匹配。例如Perl正則表達式\$被用來匹配美元符號,而不是行尾,類似的,Perl正則表達式\.用來匹配點字符,而不是任何字符的通配符[]、[c1-c2]、[^c1-c2]:匹配括號中的任何一個字符。例如Perl正則表達式r[aou]t匹配rat、rot和rut,但是不匹配ret??梢栽诶ㄌ栔惺褂眠B字符-來指定字符的區(qū)間,例如Perl正則表達式[0-9]可以匹配任何數(shù)字字符;還可以制定多個區(qū)間,例如Perl正則表達式[A-Za-z]可以匹配任何大小寫字母。另一個重要的用法是“排除”,要想匹配除了指定區(qū)間之外的字符——也就是所謂的補集——在左邊的括號和第一個字符之間使用^字符,例如Perl正則表達式[^269A-Z]將匹配除了2、6、9和所有大寫字母之外的任何字符|:將兩個匹配條件進行邏輯“或”(Or)運算。例如Perl正則表達式(him|her)匹配"itbelongstohim"和"itbelongstoher",但是不能匹配"itbelongstothem."。注意:這個元字符不是所有的軟件都支持的+:匹配1或多個正好在它之前的那個字符。例如Perl正則表達式9+匹配9、99、999、98、93dsf、9等。注意:這個元字符不是所有的軟件都支持的?:匹配0或1個正好在它之前的那個字符。注意:這個元字符不是所有的軟件都支持的{i}、{i,}、{i,j}:匹配指定數(shù)目的字符,這些字符是在它之前的表達式定義的。例如Perl正則表達式A[0-9]\{3\}能夠匹配字符"A"后面跟著正好3個數(shù)字字符的串,例如A123、A348等,但是不匹配A1234。Perl正則表達式[0-9]\{4,\}匹配連續(xù)的任意4個或4個以上數(shù)字字符。Perl正則表達式[0-9]\{4,6\}匹配連續(xù)的任意4個、5個或者6個數(shù)字字符。注意:這個元字符不是所有的軟件都支持的\d:任意數(shù)字[0-9]\D:除數(shù)字外的任意字符[^0-9]\w:任意單詞字符[_0-9a-zA-Z]\W:任意非單詞字符[^_0-9a-zA-Z]\s:空白[\r\t\n\f]\S:非空白[^\r\t\n\f]更多的內(nèi)容可參考:/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F(維基百科)/oro/api/org/apache/oro/text/regex/package-summary.html具體參考:/link?url=qud2ZoRTMrjl9n4GJ6-pcCmVjKdiTfVtTgeNDuItLk2rPh0lJflFWy5hYY4zzyspjK28ull2O9AGvX661EuTy2NACMcm9A_V-aGgVmRCAVu&pn=5010.jmeter斷言用于判斷返回的響應(yīng)結(jié)果是否滿足預(yù)期;10.1響應(yīng)斷言一個sample的請求響應(yīng)結(jié)果如下:則可以設(shè)置斷言如下:備注:包括:返回結(jié)果包含指定的內(nèi)容。匹配:根據(jù)置頂內(nèi)容進行匹配:Equals:返回結(jié)果與指定的一致substring:返回結(jié)果是指定的字符串否:不匹配11.內(nèi)置函數(shù)11.1_CSVread讀取參數(shù)文件兩個值:1.讀取文件的全路徑2.文件序列號(從第幾列讀取,0是第一列)11.2_StringfromFile讀取文件三個值分別是:1.讀取文件的全路徑2.從第幾行開始讀3.從第幾行結(jié)束讀?。?是第一行)11.3_counter計數(shù)器兩個值分別是:1.當?shù)谝粋€值為true表示每個用戶都有自己的計數(shù)器,當為false時,作為全局計數(shù)器,2.存儲結(jié)果的變量名12.jmeter執(zhí)行原理12.1元件作用域jmeter中元件的作用域是靠測試計劃的樹形結(jié)構(gòu)中元件的父子關(guān)系確定的,作用域的原則是:1.取樣器不和其他元件交互:不存在作用域的問題;2.邏輯控制器(logiccontroller)元件只對子節(jié)點中的取樣器和邏輯控制器作用3.除取樣器和邏輯控制器外,其他6類元件,如果是某個取樣器的子節(jié)點,則該元件對其父子節(jié)點起作用,如果其父子節(jié)點不是取樣器,則其作用域是該元件父節(jié)點下的其他所有后代節(jié)點(包括子節(jié)點,子節(jié)點的子節(jié)點)12.2元件的執(zhí)行順序配置元件-前置處理器-定時器-取樣器-后置處理器-斷言-監(jiān)聽器執(zhí)行順序tip:前置處理器,后置處理器,斷言等元件功能對取樣器起作用,因此,如果他們的作用域內(nèi)沒有任何取樣器,不會執(zhí)行如果同一作用域范圍有多個同一類的元件,按照測試計劃樹依次進行。頁面操作新增,提交后查看fidder傳參bodydata4.用戶定義的變量${roleName}5.HTTP信息頭管理器名稱:Content-Type值:application/json;charset=utf-8json格式名稱:Content-Type值:application/x-www-form-urlencoded;charset=utf-8htm表單格式6.后置處理器~BeanshellPostProcessor:prev.setDataEncoding("UTF-8");防止結(jié)果輸出中文亂碼,還可以寫代碼7.響應(yīng)斷言用于判斷返回的響應(yīng)結(jié)果是否滿足預(yù)期;包括:返回結(jié)果包含指定的內(nèi)容。匹配:根據(jù)置頂內(nèi)容進行匹配:Equals:返回結(jié)果與指定的一致substring:返回結(jié)果是指定的字符串否:不匹配8.查看結(jié)果樹【遇到問題及解決方法】問題一:查看結(jié)果樹-響應(yīng)數(shù)據(jù),報錯:"result":false,"mediaType":"JSON","layout":""
解決方法:HTTP請求下的信息頭管理器未設(shè)置或者設(shè)置的不是JOSN格式,選擇信息頭管理器,添加application/json;charset=utf-8(當抓包抓取的是*****.htm格式,此處添加application/x-www-form-urlencoded;charset=utf-8)問題二:Jmeter-查看結(jié)果樹-響應(yīng)數(shù)據(jù),中文顯示亂碼解決方法:1.打開Jmeter文件夾中的bin目錄,找到Jperties,打開,將ISO-8859-1改成utf-8。更改后重啟Jmeter。2.
另一種方法是在HTTP請求—后置處理器—BeanShellPostProcessor下,Script里輸入prev.setDataEncoding("UTF-8");
問題三:JDBCRequest-查看結(jié)果樹-響應(yīng)數(shù)據(jù),報錯:Nopoolfoundnamed:'*****',ensureVariableNamematchesVariableNameofJDBCConnectionConfiguration解決方法:JDBCConnectionConfiguraiton和JDBCRequest中的VariableName名字必須一致。問題四:JDBCRequest-查看結(jié)果樹-響應(yīng)數(shù)據(jù),報錯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級政治下冊第六單元我們的人身權(quán)利6.2《維護人格尊嚴》情境探究型聽課評課記錄(粵教版)
- 個人中介房屋租賃協(xié)議書范本
- 房屋轉(zhuǎn)租三方合同范本
- 樓層架管出租協(xié)議書范本
- 私立中學(xué)轉(zhuǎn)讓合同書
- 2025年度互聯(lián)網(wǎng)廣告合同終止的多重市場監(jiān)管情形
- 區(qū)中心房屋租賃合同范本
- 2025年度商品車運輸與新能源汽車充電設(shè)施安裝合同
- 二零二五年度新能源研發(fā)私人廠房租賃合同
- 2025年度攝影作品著作權(quán)獨家轉(zhuǎn)讓及商業(yè)化合同
- 繪本創(chuàng)作方案
- 小學(xué)教育中的跨學(xué)科項目學(xué)習(xí)
- 精神科理論知識考核試題題庫及答案
- 產(chǎn)品設(shè)計-產(chǎn)品設(shè)計程序與方法-榨汁機資料
- 《童年的水墨畫》的說課課件
- 第二十三屆華羅庚金杯少年數(shù)學(xué)邀請賽初賽試卷(小中組)
- 九年級數(shù)學(xué)下學(xué)期教學(xué)計劃(青島版)
- 地鐵保潔服務(wù)投標方案(技術(shù)標)
- 食堂成本核算表
- 2023年河南省新鄉(xiāng)市鳳泉區(qū)事業(yè)單位招聘53人高頻考點題庫(共500題含答案解析)模擬練習(xí)試卷
- 2023年小升初簡歷下載
評論
0/150
提交評論