版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
安裝JDK:
JAVA的環(huán)境變量設(shè)置
運用鼠標右擊“我的電腦”。屬性。高級。環(huán)境變量
系統(tǒng)變量。新建->變量名:JAVA_HOME變量值:d:\jdk
系統(tǒng)變量->編輯->變量名:Path在變量值的最前面加
±:%JAVA_HOME%\bin;
系統(tǒng)變量。新建->變量名:CLASSPATH變量值:.;
安裝Tomcat
CATALINA_HOME=d:\tomcat
UserManual
用戶手冊
1介紹
ApacheJMeter是100%純JAVA桌面應(yīng)用程序,被設(shè)計為用于測試CS
結(jié)構(gòu)的軟件.
同時也可以用來測試靜態(tài)和動態(tài)資源的性能,例如:靜態(tài)文件,Java
Servlets,CGIScripts,JavaObject,數(shù)據(jù)庫和FTP服務(wù)器等等.
JMeter可用于模擬大量負載來測試一臺服務(wù)器,網(wǎng)絡(luò)或者對象的健壯性或
者分析不同負載下的整體性能.
同時,JMeter可以幫助你對你的應(yīng)用程序進行網(wǎng)來測試.通過你創(chuàng)建的測
試腳本和assertions來驗證你的程序返回了所期盼的值.為了更高的適
應(yīng)性,JMeter允許你運用常規(guī)表達式來創(chuàng)建這些assertions.
2起先
2.1安裝
下載安裝最新的版本,將會包含全部你須要建立和運行Web,FTP,JDBC
和JNDI測試的文件.
假如你想進行JDBC測試,你須要運用合適的JDBCdriver.JMeter中
不包含JDBCdrivers.
其他可能須要下載的軟件:
?BeanShell
?JavaActivationFramework-neededforJavaMail
?JavaMail-neededformailvisualiserandSOAPtest
?JMS-forJMSsamples
?GeneralJavaKit
接下來一步,就是閱讀”建立測試安排”一章來熟識JMeter的基本操作,
例如:添加和刪除元索.最終,閱讀適當?shù)恼鹿?jié)來學(xué)習(xí)如何建立不同種類的
測試安排.例如,假如你對Web應(yīng)用程序的測試比較感愛好,就閱讀”建
立一個Web測試安排”章節(jié).其他種類的測試安排建立的章節(jié)包
括:JDBC,.
一旦你熟識了建立和運行JMeter測試安排,就可以起先熟識各種配置參
數(shù),例如:timers,listeners,assertions和其他的參數(shù),來幫助你更好地
限制你地測試安排.
2.2系統(tǒng)要求
JMeter1.8以上的版本須要JDK1.4以上的版本支持運行.
JMeter可以運行在如下操作系統(tǒng)上:Unix,Windows和OpenVMS.
2.3可選項目
假如你準備進行JMeter開發(fā)或者運用Sun的Java標準擴展包,你須要
如下所列的可選包:
2.3.1JavaCompiler
須要L4以上的JDK版本
2.3.2SAXXMLParser
JMeter默認運用Apache的XercesXMLparser.假如你想運用一個不
同的XMLparser,將第三方的parser包放入JMeter的classpath中,
然后運用設(shè)置的parser包的全名更新文件perties
2.3.3EmailSupport
JMeter擁有有限的郵件功能來發(fā)送測試結(jié)果到指定郵箱中.應(yīng)用郵箱功
能,須要將Sun的JavaMail包放入JMeter的classpath中并激活.
2.3.4SSLEncryption
為運用S測試web服務(wù)器,JMeter須要設(shè)立SSL機制.將所須要的
SSL類包放入JMeter的classpath中,更新perties來注冊
SSLProvider.
可以運用SSLManager用來管理這些證書.
留意:在JDK1.4以上版本,SSL已經(jīng)作為標準庫加入.
2.2.5JDBCDriver
你須要將你的數(shù)據(jù)庫供應(yīng)商供應(yīng)的JDBCdrivers添加到classpath中來
進行JDBC測試.
2.2.6ApacheSOAP
ApacheSOAP測試須要mail,jar和activation.jar.只須要將下載的兩
個jar文件復(fù)制到JMeter下的lib書目中,JMeter會自動的識別和運用
它們.
2.3運行
運行JMeter,運用jmeter.bat(windows)或jmeter(UNIX).
2.3.1JMeter的classpath
JMeter自動在/lib和/lib/ext書目中的jar中的類.假如你想添加其他
JAR文件到JMeter的classpath中,你必需復(fù)制他們到lib書目中.假如
你開發(fā)了一個JMeter特定組件,生成jar包后復(fù)制到lib書目下的ext書
目中.
而且,你也可以將有效的jar文件安裝到$JAVA_HOME/jre/lib/ext書目
中?
值得留意的是設(shè)置CLASSPATH環(huán)境變量沒有任何作用.這是因為
JMeter運用"java-jar”起先,java吩咐自動忽視CLASSPATH值,同
時-jar選項的運用將屏蔽掉-classpath和-cp選項.
2.3.2運用代理服務(wù)器
假如你在防火墻或者代理服務(wù)器后進行測試,你須要給JMeter供應(yīng)防火
墻和代理服務(wù)器的hostname和port號.在吩咐行運行jmeter.bat或
jmeter吩附并運用如下參數(shù):
-H代理服務(wù)器的hostname或者IP地址
-P代理服務(wù)器的port號
-u代理服務(wù)器驗證運用的用戶名
-a代理服務(wù)器驗證運用的用戶密碼
示例:
jmeter-Hyahoo-P8080-utest-apassword
2.3.3非GUI模式
對于那些非交互的測試,你可以運用非GUI的模式運行JMeter.運用如
下吩咐:
-n指定的JMeter運行在non-GUI模式下
-t包含測試安排的JMX文件的名稱
-1用于記錄簡潔結(jié)果的JTL文件名稱.
-r運行全部的在perties中指定的遠程主機.(或在吩咐行中供
應(yīng)的覆蓋屬性供應(yīng)的遠程主機名.
也可以同時供應(yīng)防火墻或者代理服務(wù)器的信息
-H服務(wù)器名或IP地址
-P端口號
示例:
jmeter-n-tmy.jmx-1log.jtl-Hyahoo-P8800
2.3.4服務(wù)器模式
為了對分布式測試,可以運行在服務(wù)器模式下,然后通過GUI來限制每個
服務(wù)器.
運行jmeter-server/jmeter-server.bat,附加下列可選項:
-H代理服務(wù)器的hostname或IP地址
-P端口號
示例:jmeter-server-Hyahoo-P8000
2.3.5通過吩咐行來重載Properties
Javasystemproperties,JMeterproperties和loggingproperties能
夠干脆通過吩咐行來干脆重載而不用修改perties文件.運用
以下參數(shù)項:
-D[propname]=[value]定義一個javasystemproperty值
-J[propname]=[value|重載一個JMeterproperty
-L[category]=[priority)重載一個loggingsetting,設(shè)置一個指定的類別
名給指定的優(yōu)先級別
-L標記位可以不指定category,將其設(shè)為root級別
示例:
jmeter-Duser.dir=/home/mstover/jmeter_stuff\
-Jremote_hosts=
-Ljmeter.engine=DEBUG
jmeter-LDEBUG
留意:吩咐行輸入的properties在啟動時先處理,但是晚于logging
system的建立.所以嘗試運用-J標記去更新logjevel或者lo〔將沒有
任何效果.
2.3.6Logging和error信息
假如JMeter檢查到一個錯誤,一個信息就被寫道log文件中.Log文件的
名字是在jmeter.properties文件中定義的.默認值位jmeter.log,在
JMeter的起先書目中可以看到,例如bin書目中.
除了記錄錯誤信息,jmeter.log文件中同時記錄了一些測試運行的信息.
例如:
10/17/200312:19:20PMINFO-jmeter.JMeter:Version
1.9.20231002
10/17/200312:19:45PMINFO-jmeter.gui.action.Load:
Loadingfile:c:\mytestfiles\BSH.jmx
10/17/200312:19:52PMINFO
jmeter.engine.StandardJMeterEngine:Runningthetest!
10/17/200312:19:52PMINFO-
jmeter.engine.StandardJMeterEngine:Starting1threadsfor
groupBSH.Rampup=1.
10/17/200312:19:52PMINFO-
jmeter.engine.StandardJMeterEngine:Continueonerror
10/17/200312:19:52PMINFO-jmeter.threads.JMeterThread:
ThreadBSH1-1started
10/17/200312:19:52PMINFO-jmeter.threads.JMeterThread:
ThreadBSH1-1isdone
10/17/200312:19:52PMINFO-
jmeter.engine.StandardJMeterEngine:Testhasended
Log文件有助于定位錯誤出現(xiàn)的緣由,因為它并未打斷測試來顯示一個
error窗口.
2.4配置JMeter
假如你想修改JMeter運行運用的properties,你可以通過兩種方式:修改
bin書目中的文件perties或者創(chuàng)建你自己的properties文件
運用吩咐行來指定該文件.
Parameters
AttributeDescriptionRequired
你可以指定一個類支持SSL.假如你運用sun
的JSSE,那么是:
viderNo
com.sun.net.ssl.internal.ssl.Provider.
JMeter默認的s支持在JDK1.4中包含.
你可以指定一個你自己的XMLparser.默認
xml.parser值為:No
org.apache.xerces.parsers.SAXParser
user.dirJMeter用于保存和裝載測試用例的書目.No
運用逗號分割的遠程JMeter主機.假如你運行
remote_hosts在分布式環(huán)境卜,列出你擁有的運行的JMeterNo
遠程主機.允許你通過GUI去限制這些機器.
一個組件的列表,都是你不想在JMeter的菜單
中看到的.由于JMeter添加了越來越多的組建,
你可能希望自己定制你的JMeter來僅僅顯示
not_in_menuNo
那些你感愛好的組建.你可以列出他們類名或者
類的標簽(在JMeter界面中顯示的字符串)在這
里,他們將不會被顯示.
3建立測試安排
一個測試安排描述了一系列JMeter在運行中要執(zhí)行的步驟.一個完整的
測試安排包含一個或多個ThreadGroups,logiccontrollers,sample
generatingcontrollers,listeners,timers,assertions和
configurationelemenrs.
3.1添加刪除Elements
添加elements到測試安排河以通過在tree中element上點擊右鍵,然后
從add列表中選擇一個新的element.同樣,elements也可以通過open
選項從一個文件中載入.
刪除一個element,確定該element被選定,右擊選擇刪除選項.
3.2載入和存儲elements
載入文件中的elements,在已有的tree中點擊右鍵,然后選擇open選項.
選擇elements存儲的文件,JMeter將載入文件中的全部elements到
tree中.
存儲tree的elements,選擇一個element然后右擊,選擇save選
項.JMeter會存儲選定的element,以和全部的子elements.這樣你就可
以存儲測試樹的一段,單獨的element或者整個測試安排.
3.3配置tree的elements
任何一個一個測試樹中的element都可以在JMeter的右邊框架顯示.這
樣允許你來配置該測試element的屬性.能夠配置什么屬性取決于你選定
的element的類型.
3.4運行測試安排
在run菜單中選擇起先來運行測試安排.停止測試安排,從菜單中選擇停
止.JMeter不會自動的在運行測試安排時有任何表現(xiàn).一些listeners使
得JMeter運行表現(xiàn)出來.但是唯一的方法是檢查run菜單中的start選項,
假如是disable的而且stop是enabled,那么JMeter就在運行你的測試
安排,至少表面上看來如此.
3.5ScopingRules
JMeter測試樹中包含的elements是分級和有次序的.一些elements在
測試中有嚴格的等級要求(Listeners,ConfigElements,
Post-Processors,Pre-Processors,Assertions,Timers),而其他一些
有primarilyordered的要求(controllers,samplers).當你創(chuàng)建測試安
排時,你須要建立一個有次序的sample懇求(通過sampler),這些反映
了一組須要執(zhí)行的測試步驟.這些懇求常常在有序的controllers中組織.
例圖1
9&TestPlan
中BThreadGroup
「One
9■SimpleController
Two
Three
/Four
懇求的次序?qū)椋簅ne,two,three,four.
有些controllers會影響他們sub-elements,你可以在component
reference中查看這些.
一些其他的elements是有級別的.例如,Assertion在測試樹中是有級別
的.假如他的父親節(jié)點是一個request,那么它將僅僅影響該request.假
如父節(jié)點是一個controller,那么它將影響該controller的全部后代的懇
求.例如:
93TestPlan
9前ThreadGroup
卓/one
PlAssertion#1
9■SimpleController
「Two
/Three
PlAssertion#2
「Four
Assertion#1僅僅應(yīng)用到RequestOne上.而Assertion#2應(yīng)用到
RequestTwo和Three上.
另外一個關(guān)于Timers的示例:
9口TestPlan
9眩ThreadGroup
/one
9里SimpleController
/Two
?Timer#1
<?/Three
R|Assertion#1
§■SimpleController
「Four
,Five
Timer#2
在這個例子中,request的名字反映了他們在測試中應(yīng)當執(zhí)行的次序.
Timer#1將應(yīng)用到RequestTwo,Three和Four上(留意對于分等級的
elements如何排序毫不相關(guān)).Aserrtion#1將僅僅應(yīng)用到Request
Three±.Timer#2將影響全部的懇求.
假如你想想任何一個request通過樹的路徑被傳遞,釗它的父節(jié)點,在到
它的父節(jié)點的父節(jié)點,以此類推,在每一級的父節(jié)點上集合全部的
configurationelemen:s,那么你就知道它是如何工作的了.
留意:
對于Configurationelements中的HeaderManager,Cookie
Manager和Authorizationmanager來i兌,與其他的Configuration
Defaultelements不同.ConfigurationDefaultelements被整合成―
個Sampler訪問的集合.而Manager的設(shè)置不會被整合.假如超過一個的
Manger在Sampler的范圍中,只有一個Manager被運用,但是目前還無
法推斷那個被運用.
4測試安排的elements
測試安排對象現(xiàn)在擁有了一個新的checkbox選項,叫做"功能測試”.
假如選擇,JMeter將記錄全部server為每個sample返回的值.假如你已
經(jīng)在測試listeners中選定了一個文件,那么這些數(shù)據(jù)將被寫入到文件中.
這個有助于你通過一個小型的測試來檢驗JMeter是否配置正確,而你的
服務(wù)器返回正確的結(jié)果.值得留意的是這個文件的大小將增長的很快使得
JMeter的性能降低.這個選項在做壓力測試時須要關(guān)閉掉(默認為關(guān)閉).
假如你不將數(shù)據(jù)寫入文件中,那么這個選項沒有任何不同.
4.1ThreadGroup
ThreadGroupelements是任何一個測試安排的起先點.全部的測試安
排中的elements都要在一個ThreadGroup中.如名字顯示那樣,
threadgroupelement限制了一組線程,JMeter運用這些線程來執(zhí)行你
的測試.你可以做如下操作來限制threadgroup:
?設(shè)置線程的數(shù)量
?設(shè)置ramp-up周期
?設(shè)置測試執(zhí)行的次數(shù)
每一個線程都會完全和獨立的執(zhí)行測試安排而不影響其他線程.多線程可
以用于模擬到你的服務(wù)器程序的并發(fā)連接.
Ramp-upperiod告知JMeter須要多長時間來"ramp-up”去裝載全
部的線程.假如10個線程被運用,而ramp-upperiod為1。。秒,那么
JMeter會花100秒來使得全部的10個線程運行.每個線程將在上個線
程起先后10秒起先.又如,假如有30個線程而ramp-up為120秒.那
么每個線程在延遲4秒后啟動.延遲時間=ramp-upperiod時間數(shù)/線程
數(shù)
默認的,一個threadgroup被設(shè)置為不限定的循環(huán).你可以設(shè)置thread
group循環(huán)的次數(shù).假如設(shè)置為一次,那么JMeter將執(zhí)行測試一次然后停
止.
Version1.9將允許你預(yù)定時間去運行測試.選定Scheduler的
checkbox,你就可以設(shè)定時間.
4.2Controllers
JMeter有兩種controller:Samplers和LogicalControllers
Samplers告知JMeter發(fā)送懇求到服務(wù)器.例如,假如你想JMeter發(fā)送
一個懇求,就添加一個RequestSampler.當然你也可以定制
一個懇求,在Sampler中添力口一個或多個ConfigurationElements.
LogicalControllers使你可以定制JMeter發(fā)送懇求的邏輯.例如,你可
以添加一個InterleaveLogicController來限制交替運用兩個
RequestSamplers.同樣,一個特定的Logiccontroller,作為
ModificationManager,可以讓你修改懇求的結(jié)果.
4.2.1Samplers
Sampler告知JMeter發(fā)送懇求到server端.JMeter現(xiàn)在有如卜的
samplers:
?Request
?JDBCRequest
?JavaObjectRequest
?LDAPRequest
?SOAP/XML-RPCRequest
?WebService(SOAP)Request(AlphaCode)
每個sampler都有一些可以設(shè)置的properties.你也可以在一個
sampler中添加ConfigurationElements來做更多的設(shè)置.當然,值得
留意的是JMeter根據(jù)request在tree中添加的次序來發(fā)送懇求.
假如你想同時發(fā)送多個并發(fā)的同一種類的request,例如request,
到同樣一臺服務(wù)器.可以考慮運用一個DefaultsConfiguration
Element.每個Controller擁有一個或多個默認元素.
當然不要遺忘添加一個Listener到你的ThreadGroup中來察看和存儲
你的測試結(jié)果.
假如你對JMeter對你的request返回的response進行簡潔的校驗很感
愛好,你可以在RequestController中添加一個Assertion.例如,在一
個web程序的壓力測試中,服務(wù)器可能會返回多個勝利的”
Response,,,但是頁面或許包含了一些錯誤或者丟失的部分.你可以添
加assertions來檢查特定的HTML標簽,常見的錯誤字符串,等等諸如此
類的數(shù)據(jù).JMeter允許你運用常規(guī)表達式來創(chuàng)建這些assertions.
4.2.2LogicControllers
LogicController使得用戶可以定制JMeter發(fā)送懇求的時機.
LogicControllers可以擁有如下的任何一個作為子elements:
Samplers(requests),ConfigurationElement和其他的Logic
Controllers.LogicControllers可以變更子elements的懇求次序.他們
可以自己修改requests,使得JMeter可以重復(fù)發(fā)送懇求等等.
為了便于理解LogicControllers在測試安排中所起的作用,舉例如下:
?TestPlan
■ThreadGroup
?OnceOnlyController
?LogicRequest(anrequest)
?LoadSearchPage(sampler)
?InterleaveController
?Search"A"(Sampler)
?Search"B”(Sampler)
?defaultrequest(ConfigurationElement)
?defaultrequest(ConfigurationElement)
?CookieManager(ConfigurationElement)
首先表明白login懇求只會在第一次運行時執(zhí)行.其余的懇求將自動跳過
它.達到這個效果的緣由就是因為OnceOnlyController的影響左右.
在login之后,下一個Sampler加載了searchpage(想象一下,一個在
用戶登錄后就轉(zhuǎn)入search頁面來做搜尋的web程序).這個僅僅是一個簡
潔的懇求,并未通過任何LogicController的篩選過程.
在search頁面加載后,我們想做一些搜尋.事實上,我們要做兩個不同
的搜尋.然而,我們想在每個獨立的搜尋中重新加載search頁面.我們
可以用四個簡潔的requestelements來達到目的(載入search頁面,
搜尋“A",載入search頁面,搜尋"B").而事實上,我們運用了另一個
方法,我們運用InterleaveController,它將每次運行一個完整的測試只
運用一個子element的request.而且能夠保持這些子elements的次序
來運行.
留意:
RequestDefaults是屬于InterleaveController的.想象一
下”searchA"和“SearchB”共享同一個“PATH”信息(一個指定的
懇求包括domain,port,method,protocol,path和arguments等,還
有其他額外的信息).這導(dǎo)致:兩者都是search的懇求,點擊同一個后臺
搜尋引擎.與其給兩者配置相同PATH信息,不如將信息抽象出來給一個
ConfigurationElement.
當InterleaveController傳遞”SearchA”和“SearchB”的懇求時,
將自動運用DefaultRequestConfigurationElement的值來取代
空白的PATH域.所以,我們將這些懇求的PATH域空置,然后將這些信
息放入到ConfigurationElement中.
樹中接下來的element是另外一個DefaultRequest,這次是給
ThreadGroup自己運用的.ThreadGroup擁有一個內(nèi)置的Logic
Controller,因此,它象上面的介紹的那樣一樣,來運用這個
ConfigurationElement.它將填入到任何一個通過的Request的空白
中.當你做web測試時,這是特別有用的.你可以將全部的
Samplerelements的DOMAIN域空白,然后運用ThreadGroup中添
加的DefaultRequest的信息補充這些空白域.這樣,你可以僅僅
變更一個域就能將整個測試安排應(yīng)用到另外的server上.否則你須要一
個一個更改Sampler.
最終一個element是CookieManager.全部的web測試中都應(yīng)當
添加該element,否貝i]JMeter將忽視全部的cookie.在ThreadGroup
級添加這個元素,可以保證全部request將共享同樣的一個cookie.
LogicController可以被組合起來從而獲得多種不同的結(jié)果.
4.3Listeners
Listeners供應(yīng)了獲得在JMeter運行過程中搜集到的信息的訪問方式.
最簡潔的Listener,GraphResultsListener圖示出了響應(yīng)時間.
Listeners供應(yīng)了一種圖型化的方式來查看JMeter運行過程中產(chǎn)生的數(shù)
據(jù).
另外,Listeners能夠干脆將搜集的到數(shù)據(jù)存入到文件中以備后用.任何
一個listener都擁有一個設(shè)置該文件存儲地址的域.
Listener能夠加到測試中的任何位置.他們將僅僅收集同級別和全部低級
別的elements產(chǎn)生的數(shù)據(jù).
4.4Timers
默認的,JMeter線程發(fā)送requests時之間沒有任何停頓.我們建議你指
定一個延遲時間.這可以通過添加一個有效的Timer到你的Thread
Group中實現(xiàn).假如你沒有添加一個延遲時間,JMeter可能會在極短時
間內(nèi)發(fā)送大量的懇求而引起server崩潰.
Timer可以使得JMeter在線程發(fā)送每個懇求時有一個延遲.假如你添加
了多個timer到一個ThreadGroup中時,JMeter將運用累計的延遲時
間.
4.5Assertions
Assertions允許你對在測試中從server端返回的回復(fù)中驗證某些數(shù)據(jù).
運用assertion,你可以實際地測試你的程序返回的值是否是期望值.
例如,你可以檢驗回復(fù)字符串中包含一些特殊的文本.你指定的文本可以
是一個Perl-style的常規(guī)表達式,然后指定回復(fù)中是否包含該文本,或者
整個回復(fù)都應(yīng)當相符合.
你可以給任何一個Sampler添加一個assertion.例如,你可以添加一個
assertion到一個Request來檢查文本"yahoo”.JMeter就會在
返回的回復(fù)中察看該文本.假如JMeter不能發(fā)覺該文本,那么將標記該懇
求是個失敗的懇求.
為了查看assertion的結(jié)果,你須要添加一個AssertionListener到
ThreadGroup中.
4.6ConfigurationElements
ConfigurationElement與Sampler緊密聯(lián)系在一起工作.盡管它不能
發(fā)送懇求,但是它可以被添加到或者去修改懇求(除了ProxyServer)
之外.
ConfigurationElement只能被所在的treebranch訪問.例如,你在一
個SimpleLogicController中設(shè)置了一個CookieManager,那么
這個CookieManager將只能被設(shè)置在SimpleLogicController中的
RequestControllers訪問.如下圖中所示,CookieManager能夠被
request“WebPagel"和"WebPage2M訪問,但是不能被“Web
Page3”訪問.
并且,一個treebranch中的configurationelement將擁有更高的優(yōu)先
級,與同一個parentbranch中的同樣的元索相比.例如,我們定義了
兩個RequestDefaultselements,uWebDefaultsln和"Web
Defaults2".因為我們將“WebDefaults1”放入到一個Loop
Controller中,所以只有"WebPage2”能訪問它.而其他的
requests只能運用我們在“ThreadGroup”(全部其他branch
的“parent”)中設(shè)置的“WebDefaults2”.
9TestPlan
9J*ThreadGroup
9T;SimpleController
掰HTTPCookieManager
WebPage1
9LoopController
WebPage2
絹^WebDefaults1
/..WtebPage3
蔑WebDefaults2
Workbench
4.7Pre-ProcessorElements
Pre-Processor在SamplerRequest被創(chuàng)建前執(zhí)行一些操作.假如一個
Pre-Processor被附加到一個Samplerelement上,那么它將先于
SamplerElement運行.Pre-Processor最主要用于在Sampler運行前
修改一些設(shè)置,或者更新一些無法從response文本中獲得的變量.
4.8Post-ProcessorElements
Post-Processor在SamplerRequest被創(chuàng)建后執(zhí)行一些操作.假如一個
Post-Processor被附加到一個Samplerelement上,那么將緊接著
samplerelement運行后運行.Post-Processor主要用于處理[II復(fù)數(shù)據(jù),
常常用來從其中獲得某些值.
5建立一個web測試安排
在本章中,你將學(xué)習(xí)到如何創(chuàng)建一個基本的測試安排用來測試一個web
站點.你創(chuàng)立5個用戶向Jakarta網(wǎng)站的兩個頁面發(fā)送懇求.同時,你將設(shè)
置這些用戶運行他們的測試兩遍.所以,總共的request數(shù)
M-5(user)*2(request)*2(repeat2times)=20Requests.為建立
測試安排,你將運用如下elements:ThreadGroup,Request,
RequestDefaults和GraphResults.
5.1AddingUsers添加用戶
每個JMeter測試安排的第一步都是要添加一個ThreadGroupelement.
ThreadGroup將告知JMeter你要設(shè)置的用戶的數(shù)目,發(fā)送懇求的頻率
和懇求的次數(shù).
選擇測試安排,點擊右鍵,選擇添加ThreadGroup.這時你就應(yīng)當在
TestPlan下看至ijThreadGroupelement了.假如你沒有看到,那就點
擊TestPlan綻開樹.
然后,你須要修改那些默認的properties.選擇樹中的ThreadGroup
element,在JMeter左側(cè)的窗口中應(yīng)當顯示出ThreadGroup的
ControlPanel.
9&TestPlan
ThreadGroup
yThreadGroup
iiWorkBenchName:threadGroup
第一步,給我們的ThreadGroup添加一個更具體的名稱.在名字域中,
輸入JakartaUsers.
然后增加用戶的數(shù)目到5(調(diào)用的線程數(shù)).
在下一個域中,Ramp-UpPeriod,運用默認值。秒.這個prop6rties告
知JMeter兩個User起先發(fā)送懇求之間的延遲時間.例如,你輸入5秒,
JMeter將在5秒后啟動全部的用戶.所以,我們有五個用戶和5秒的
Ramp-upperiod,那么兩個用戶之間起先時間的延遲時1秒.(5
user/5=l).
假如值為0,那么JMeter將立即起先你全部的用戶操作.
最終,清除"Forever”的checkbox,輸入2在LoopCount域中.這個
property告知JMeter要重復(fù)運行你的測試幾次.假如你輸入的循環(huán)值為
1,那么JMeter將只運行一次你的測試.假如要JMeter不停運行你的測
試,選擇Forever.
JTR7Plan
曹ThreadGroupThreadGroup
度WorkBenchName:ThreadGroup
ThreadDelayProperties
NumberofThreads:5
Ramp-UpPeriod(inseconds):0
LoopCount:2□Forever
□Scheduler
在大部分程序中,你不得不手工方式來更新你在限制面板中的更改.然而,
在JMeter中,限制面板將自動的接受你的更改.例如,你變更了一個
element的名稱,樹將自動更新為最新的文本在你離開限制面板后(例如,
選擇了另一個element).
5.2添加DefaultRequestProperties
現(xiàn)在我們已經(jīng)定義了我們的用戶,是時間來定義他們要執(zhí)行的任務(wù)了.在
這節(jié),你將指定你的懇求的默認設(shè)置.然后,在5.3中,你將添加
Requestelements來運用你制定的默認值.
選擇你的JakartaUserelement.右擊選擇添加ConfigElement中的
RequestDefaults.然后選擇這個新的元素查看他的限制面板.
象大多數(shù)的JMeter元素一樣,RequestDefault的限制面板擁有一
個可修改的名稱域.在本例中,運用默認值.
跳到下個域,WebServer'sName/IP.在本例中,全部的測試用例將發(fā)
送到同一個web服務(wù)器上去:J.將這個域名輸入至ij
該字段中.這是我們唯一指定的默認值,全部留下其他的域為空白值.
留意:RequestDefaultselements不會告知JMeter去發(fā)送懇
求.它只是簡潔的定義了requestelements會運用到的默認值.
5.3添加Cookie支持
幾乎全部的web測試要求運用cookie,除非你的程序特殊指明不運用
cookie.添加cookie支持,最簡潔的是添加CookieManager到每
一個ThreadGroup中.這會保證每個線程都獲得自己的cookie,但是交
叉共享全部的Request對象.
添加CookieManager,點擊ThreadGroup,然后選擇添加
CookieManager.
5.4添加Request
在我們的測試安排中,我們須要創(chuàng)建兩個Requests.第一個是訪問
Jakarta的主頁,().其次個是訪問.
右擊添加笫一個Request.然后修改該元素的properties
1.將名字改為HOMEPage
2.設(shè)置路徑為.留意的是你不須要設(shè)置server的名稱,因為你再
RequestDefaultselement中已經(jīng)設(shè)置了.
鹿ApacheOMeter
FHeEditRunOptionsHelp
9&TestPlan
9JekartaUsersHTTPRequest
#HTTPRgRstDefouRsName:HomePage
/HomePa9e
WcrtBench
OptionalTasks
EiRetrieveANImagesandJavaApplets(HTMLfilesonly)
緊接著添加其次個request.
5.5添加一個Listener來查看和存儲測試結(jié)果
最終一個要在測試安排中添加的元索是Listener.這個元素用來存儲全部
的測試結(jié)果到一個文件和供應(yīng)一個數(shù)據(jù)的視圖模式.
添加GraphResultslistener至ijThreadGroup中.然后指定一個路徑
和文件名用于存儲測試結(jié)果.你可以輸入,也可以通過browse按鍵來選
擇?
GraphResults
Name:GraphVisualizer
WrrteAllDatatoaFile
FilenameBrowse...□LogErrorsOnly
Deviation278Throughput137.96985/minuteMedian360
5.6保存測試安排
經(jīng)管這不是一個必需的步驟,但是我們建議你將測試安排在運行前存入一
個文件.
5.7運行測試安排
在Run菜單中,選擇運行.
一旦JMeter完成了你的測試安排,選擇停止.
假如你選擇將listener中的測試結(jié)果存儲到一個文件中,那么你將擁有這
個可以被任何閱讀器查看的文件.不同的閱讀器顯示不同的風(fēng)格.
6建立一個高級的web測試安排
本節(jié)中,你將學(xué)習(xí)如何建立一個更高級的測試安排來測試web站點
6.1運用URL重寫技術(shù)處理用戶的session
假如你的web程序運用URL重寫而不是cookie來保存session的信息,
那么你須要做一些額外的工作來測試你的站點.
為了正確的進行URL回寫,JMeter須要過濾從server端獲的HTML來
獲得唯一的sessionID.運用合適URLRe-WritingModifier來達到
此目的.將你的SessionID作為參數(shù)寫入到modifier中,它將自動添加
session到每一個request中.假如request中已經(jīng)有了該值,將干脆覆
蓋.
示例:
9:TestPlan
勺■'ThreadGroup
IndexPage
9■SimpleController
PlHTTPURLRe-writingModifier
/Login
/DoSomething
AnotherRequest
上圖中顯示了一個運用了URLRe-writing的測試安排.留意modifier被
附加在ThreadGroup上,這樣就保證了全部線程組的懇求都會被應(yīng)用
到.
HTTPURL-RewritingModifier
Name:〔HTTPURL-RewritingModifier|
SessionArgumentName〔SESSION」。|
□PathExtension(useasseparator)
在上圖中,我們看到的是URLRe-Writingmodifier的GUL僅僅只有一
個域給用戶用于設(shè)置sessionID參數(shù)的名字.
6.2運用HeaderManager
HeaderManager可以使你定制JMeter發(fā)送的懇求的報頭.象
cookieManager-?樣,應(yīng)當添加到合適的級別上.除非出于某種緣由你
希望你測試不同的request發(fā)送不同的報頭.
7建立一個database測試安排
本節(jié)中,你將學(xué)習(xí)假如建立一個測試數(shù)據(jù)庫的基本測試安排.你將創(chuàng)建一
個有1。個用戶發(fā)送2個SQL懇求到數(shù)據(jù)庫server的測試.同時,你將
告知用戶運行他們的測試三遍.所以,總共的懇求次數(shù)是:1。users*2
requests*3times=60JDBCrequests.為了創(chuàng)建測試安排,你將運
用元素:ThreadGroup,JDBCRequest和GraphResults.
7.1添加用戶
每個JMeter測試安排創(chuàng)建的第一步都是添加ThreadGroup元素.
ThreadGroup用于設(shè)置發(fā)送懇求的用戶數(shù),頻率和懇求總數(shù).
如下圖,設(shè)置10個線程代表10個用戶,用戶的延遲時間為。,一共循環(huán)3
次.
7.2添加JDBC懇求
盡管有JDBCDATABASEConnectionPoolDefaults,JDBC
DatabaseLoginDefaults和JDBCSQLQueryDefaults組件可用,
但是本例中并未涉和.
我們要添加兩個JDBCRequest.下圖為懇求一.
留意:須要將須要的JDBC的drive放入Classpath中.
卜.圖為懇求二.
23ApacheJMeter-la|x|
FileEdrtRunOptionsHelp
9QTestRan
9JDBCUsersJDBCRequest
/KodakName:[fflzerj
/Pfizer
ilWorkBenchDatabaseURLandJDBCDriver
JDBCURL:Ijdbcpostgresqtmydb|
DriverOass:|org.postgre$ql.Driver-j
LoginCcEguralion
Username|mart)n
PasswordTWTT
DatabaseConnectionPool
NumberofConnectionsinPool:|l|
MaxggeForEachConnection:
SQLQueryString:select,fromStockswhereStockSymbol三p⑻|
7.3添加Listener元素來監(jiān)視和存儲測試結(jié)果
如卜圖所示,添加了一個GraphResultListener.
7.4保存測試安排
7.5運行測試安排
8建立一個FTP測試安排
1添加用戶
通過添加一個ThreadGroup來添加用戶
53ApacheJMeter兇
FileEditRunOptionsHelp
?gTestPlsn
ThreadGroup
前O'ReillyUsers
[J||WorkBenchName:|o'ReillyUsers
ThreadDelayProperties
NunberofThreads:4|
Ramp-UpPeriod(inseconds):|o|
LoopCount:|Forever
2添加DefaultProperties
添加一個configelement中的Default用于全部的.
3添加
在我們示例中,耍添加兩個FTP懇求.
懇求一:
懇求二:
8.4添加一個Listener來查看和存儲測試結(jié)果
最終,我們添加了一個SplineVisualizerlistener用于視察和存儲測試
結(jié)果.
8.5保存測試安排
8.6運行測試安排
9建立一個LDAP測試安排
9.1添加用戶
創(chuàng)建一個ThreadGroup用于添加用戶和設(shè)置懇求次數(shù)和頻率.
9.2添加一個登錄限制元素
可以添加一個ConfigElement的LoginConfigElement用于用戶登錄
限制.
9.3添加一個LDAPRequestDefaults
可以添加一個configelement中的LDAPRequestDefaults用于限制一
些共享默認值.
ApacheJMeterB
9.4添加LDAPRequest
添加的LDAPRequest通過選擇不同的測試配置來完成四種操作:添加,
刪除,修改和查詢.
例如,修改:
ApacheJMeterBX
FileEditRunOptionsHelp
9.5添加一個Listener來查看和保存測試結(jié)果
添加了一個ViewResultsinTable的listener
ApacheJMeter
FileEditRunOptionsHelp
r
9.6保存測試用例
9.7運行測試用例
10創(chuàng)建一個WebService測試安排
對于WebServiceSampler,當前是運用ApacheSoapdriver.須要
activation.jar和mail.jar.
由于license的限制,JMeter中并未包含這些jar文件.
假如sampler顯示從webservice獲得一個error.須要同時檢查SOAP
的信息來確認格式是正確的.特殊的要確認xmlns的attributes要和
WSDL完全一樣.假如xml的namespace不同,那么webservice將很
可能返回一個錯誤.Xmethods中包括了一個公共service的列表.
10.1添加用戶
10.2添力口webservice懇求
10.3添加listener用于查看和存儲測試結(jié)果.
10.4保存測試安排
10.5運行測試安排
11創(chuàng)建JMSPoint-to-Point測試安排
須要如Fjar文件的支持
activation.jar
activeio-1.O-SNAPSHOT.jar
activemq-3.0.jar
activemq-core-3.0.jar
commons-logging-1.0.3.jar
concurrent-1.3.4.jar
geronimo-spec-j2ee-jacc-1.0-rc4.jar
geronimo-spec-j2ee-management-l.0-rc4,jar
geronimo-spec-jms-1.1-rc4.jar
geronimo-spec-jta-1.0.lB-rc4.jar
jms.jar
jndi.jar
log4j-1.2.8.jar
spring-1.1.jar
11.1添加用戶
11.2添加JMS懇求
11.3添加listener用于查看和存儲測試結(jié)果.
11.4保存測試安排
11.5運行測試安排
NameValueDescription
JMSResources
QueueuConnectionFactConnectionFacThisisthedefaultJNDI
orytoryentryfortheconnection
factorywithinactivemq.
JNDINameRequestQ.REQQThisisequaltotheJNDI
QueuenamedefinedintheJNDI
properties.
JNDINameReplyQ.RPLThisisequaltotheJNDI
QueuenamedefinedintheJNDI
properties.
MessageProperties
CommunicationRequestResponseThismeansthatyouneed
Styleatleastaservicethat
respondstothere
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海外建筑工程物資管理培訓(xùn)
- 海外業(yè)務(wù)培訓(xùn)
- 海員培訓(xùn)實操課件
- 石英玻璃冷加工工崗前理論綜合技能考核試卷含答案
- 余熱余壓利用系統(tǒng)操作工創(chuàng)新意識知識考核試卷含答案
- 石材護理工崗前創(chuàng)新實踐考核試卷含答案
- 酒店員工培訓(xùn)與績效反饋制度
- 酒店客房預(yù)訂系統(tǒng)使用培訓(xùn)制度
- 酒店餐飲服務(wù)與文化品味提升制度
- 特種壓力設(shè)備擴產(chǎn)項目(遷建固定式X射線探傷項目)環(huán)境影響報告表
- 2026四川涼山州雷波縣糧油貿(mào)易總公司面向社會招聘6人考試參考題庫及答案解析
- 量子科普知識
- 2025至2030中國航空安全行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 華潤燃氣2026屆校園招聘“菁英計劃·管培生”全面開啟備考考試題庫及答案解析
- 多進制LDPC碼編譯碼算法:從理論到硬件實現(xiàn)的深度剖析
- 2025年醫(yī)院財務(wù)部工作總結(jié)及2026年工作計劃
- 基于新課程標準的小學(xué)數(shù)學(xué)“教學(xué)評一致性”實踐與研究課題開題報告
- 成本管理論文開題報告
- 華潤集團6S管理
- 新建粉煤灰填埋場施工方案
- 2025年提高缺氧耐受力食品行業(yè)分析報告及未來發(fā)展趨勢預(yù)測
評論
0/150
提交評論