




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
安裝JDK:
JAVA的環境變量設置
運用鼠標右擊“我的電腦”。屬性。高級。環境變量
系統變量。新建->變量名:JAVA_HOME變量值:d:\jdk
系統變量->編輯->變量名:Path在變量值的最前面加
±:%JAVA_HOME%\bin;
系統變量。新建->變量名:CLASSPATH變量值:.;
安裝Tomcat
CATALINA_HOME=d:\tomcat
UserManual
用戶手冊
1介紹
ApacheJMeter是100%純JAVA桌面應用程序,被設計為用于測試CS
結構的軟件.
同時也可以用來測試靜態和動態資源的性能,例如:靜態文件,Java
Servlets,CGIScripts,JavaObject,數據庫和FTP服務器等等.
JMeter可用于模擬大量負載來測試一臺服務器,網絡或者對象的健壯性或
者分析不同負載下的整體性能.
同時,JMeter可以幫助你對你的應用程序進行網來測試.通過你創建的測
試腳本和assertions來驗證你的程序返回了所期盼的值.為了更高的適
應性,JMeter允許你運用常規表達式來創建這些assertions.
2起先
2.1安裝
下載安裝最新的版本,將會包含全部你須要建立和運行Web,FTP,JDBC
和JNDI測試的文件.
假如你想進行JDBC測試,你須要運用合適的JDBCdriver.JMeter中
不包含JDBCdrivers.
其他可能須要下載的軟件:
?BeanShell
?JavaActivationFramework-neededforJavaMail
?JavaMail-neededformailvisualiserandSOAPtest
?JMS-forJMSsamples
?GeneralJavaKit
接下來一步,就是閱讀”建立測試安排”一章來熟識JMeter的基本操作,
例如:添加和刪除元索.最終,閱讀適當的章節來學習如何建立不同種類的
測試安排.例如,假如你對Web應用程序的測試比較感愛好,就閱讀”建
立一個Web測試安排”章節.其他種類的測試安排建立的章節包
括:JDBC,.
一旦你熟識了建立和運行JMeter測試安排,就可以起先熟識各種配置參
數,例如:timers,listeners,assertions和其他的參數,來幫助你更好地
限制你地測試安排.
2.2系統要求
JMeter1.8以上的版本須要JDK1.4以上的版本支持運行.
JMeter可以運行在如下操作系統上:Unix,Windows和OpenVMS.
2.3可選項目
假如你準備進行JMeter開發或者運用Sun的Java標準擴展包,你須要
如下所列的可選包:
2.3.1JavaCompiler
須要L4以上的JDK版本
2.3.2SAXXMLParser
JMeter默認運用Apache的XercesXMLparser.假如你想運用一個不
同的XMLparser,將第三方的parser包放入JMeter的classpath中,
然后運用設置的parser包的全名更新文件perties
2.3.3EmailSupport
JMeter擁有有限的郵件功能來發送測試結果到指定郵箱中.應用郵箱功
能,須要將Sun的JavaMail包放入JMeter的classpath中并激活.
2.3.4SSLEncryption
為運用S測試web服務器,JMeter須要設立SSL機制.將所須要的
SSL類包放入JMeter的classpath中,更新perties來注冊
SSLProvider.
可以運用SSLManager用來管理這些證書.
留意:在JDK1.4以上版本,SSL已經作為標準庫加入.
2.2.5JDBCDriver
你須要將你的數據庫供應商供應的JDBCdrivers添加到classpath中來
進行JDBC測試.
2.2.6ApacheSOAP
ApacheSOAP測試須要mail,jar和activation.jar.只須要將下載的兩
個jar文件復制到JMeter下的lib書目中,JMeter會自動的識別和運用
它們.
2.3運行
運行JMeter,運用jmeter.bat(windows)或jmeter(UNIX).
2.3.1JMeter的classpath
JMeter自動在/lib和/lib/ext書目中的jar中的類.假如你想添加其他
JAR文件到JMeter的classpath中,你必需復制他們到lib書目中.假如
你開發了一個JMeter特定組件,生成jar包后復制到lib書目下的ext書
目中.
而且,你也可以將有效的jar文件安裝到$JAVA_HOME/jre/lib/ext書目
中?
值得留意的是設置CLASSPATH環境變量沒有任何作用.這是因為
JMeter運用"java-jar”起先,java吩咐自動忽視CLASSPATH值,同
時-jar選項的運用將屏蔽掉-classpath和-cp選項.
2.3.2運用代理服務器
假如你在防火墻或者代理服務器后進行測試,你須要給JMeter供應防火
墻和代理服務器的hostname和port號.在吩咐行運行jmeter.bat或
jmeter吩附并運用如下參數:
-H代理服務器的hostname或者IP地址
-P代理服務器的port號
-u代理服務器驗證運用的用戶名
-a代理服務器驗證運用的用戶密碼
示例:
jmeter-Hyahoo-P8080-utest-apassword
2.3.3非GUI模式
對于那些非交互的測試,你可以運用非GUI的模式運行JMeter.運用如
下吩咐:
-n指定的JMeter運行在non-GUI模式下
-t包含測試安排的JMX文件的名稱
-1用于記錄簡潔結果的JTL文件名稱.
-r運行全部的在perties中指定的遠程主機.(或在吩咐行中供
應的覆蓋屬性供應的遠程主機名.
也可以同時供應防火墻或者代理服務器的信息
-H服務器名或IP地址
-P端口號
示例:
jmeter-n-tmy.jmx-1log.jtl-Hyahoo-P8800
2.3.4服務器模式
為了對分布式測試,可以運行在服務器模式下,然后通過GUI來限制每個
服務器.
運行jmeter-server/jmeter-server.bat,附加下列可選項:
-H代理服務器的hostname或IP地址
-P端口號
示例:jmeter-server-Hyahoo-P8000
2.3.5通過吩咐行來重載Properties
Javasystemproperties,JMeterproperties和loggingproperties能
夠干脆通過吩咐行來干脆重載而不用修改perties文件.運用
以下參數項:
-D[propname]=[value]定義一個javasystemproperty值
-J[propname]=[value|重載一個JMeterproperty
-L[category]=[priority)重載一個loggingsetting,設置一個指定的類別
名給指定的優先級別
-L標記位可以不指定category,將其設為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文件有助于定位錯誤出現的緣由,因為它并未打斷測試來顯示一個
error窗口.
2.4配置JMeter
假如你想修改JMeter運行運用的properties,你可以通過兩種方式:修改
bin書目中的文件perties或者創建你自己的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在分布式環境卜,列出你擁有的運行的JMeterNo
遠程主機.允許你通過GUI去限制這些機器.
一個組件的列表,都是你不想在JMeter的菜單
中看到的.由于JMeter添加了越來越多的組建,
你可能希望自己定制你的JMeter來僅僅顯示
not_in_menuNo
那些你感愛好的組建.你可以列出他們類名或者
類的標簽(在JMeter界面中顯示的字符串)在這
里,他們將不會被顯示.
3建立測試安排
一個測試安排描述了一系列JMeter在運行中要執行的步驟.一個完整的
測試安排包含一個或多個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不會自動的在運行測試安排時有任何表現.一些listeners使
得JMeter運行表現出來.但是唯一的方法是檢查run菜單中的start選項,
假如是disable的而且stop是enabled,那么JMeter就在運行你的測試
安排,至少表面上看來如此.
3.5ScopingRules
JMeter測試樹中包含的elements是分級和有次序的.一些elements在
測試中有嚴格的等級要求(Listeners,ConfigElements,
Post-Processors,Pre-Processors,Assertions,Timers),而其他一些
有primarilyordered的要求(controllers,samplers).當你創建測試安
排時,你須要建立一個有次序的sample懇求(通過sampler),這些反映
了一組須要執行的測試步驟.這些懇求常常在有序的controllers中組織.
例圖1
9&TestPlan
中BThreadGroup
「One
9■SimpleController
Two
Three
/Four
懇求的次序將為:one,two,three,four.
有些controllers會影響他們sub-elements,你可以在component
reference中查看這些.
一些其他的elements是有級別的.例如,Assertion在測試樹中是有級別
的.假如他的父親節點是一個request,那么它將僅僅影響該request.假
如父節點是一個controller,那么它將影響該controller的全部后代的懇
求.例如:
93TestPlan
9前ThreadGroup
卓/one
PlAssertion#1
9■SimpleController
「Two
/Three
PlAssertion#2
「Four
Assertion#1僅僅應用到RequestOne上.而Assertion#2應用到
RequestTwo和Three上.
另外一個關于Timers的示例:
9口TestPlan
9眩ThreadGroup
/one
9里SimpleController
/Two
?Timer#1
<?/Three
R|Assertion#1
§■SimpleController
「Four
,Five
Timer#2
在這個例子中,request的名字反映了他們在測試中應當執行的次序.
Timer#1將應用到RequestTwo,Three和Four上(留意對于分等級的
elements如何排序毫不相關).Aserrtion#1將僅僅應用到Request
Three±.Timer#2將影響全部的懇求.
假如你想想任何一個request通過樹的路徑被傳遞,釗它的父節點,在到
它的父節點的父節點,以此類推,在每一級的父節點上集合全部的
configurationelemen:s,那么你就知道它是如何工作的了.
留意:
對于Configurationelements中的HeaderManager,Cookie
Manager和Authorizationmanager來i兌,與其他的Configuration
Defaultelements不同.ConfigurationDefaultelements被整合成―
個Sampler訪問的集合.而Manager的設置不會被整合.假如超過一個的
Manger在Sampler的范圍中,只有一個Manager被運用,但是目前還無
法推斷那個被運用.
4測試安排的elements
測試安排對象現在擁有了一個新的checkbox選項,叫做"功能測試”.
假如選擇,JMeter將記錄全部server為每個sample返回的值.假如你已
經在測試listeners中選定了一個文件,那么這些數據將被寫入到文件中.
這個有助于你通過一個小型的測試來檢驗JMeter是否配置正確,而你的
服務器返回正確的結果.值得留意的是這個文件的大小將增長的很快使得
JMeter的性能降低.這個選項在做壓力測試時須要關閉掉(默認為關閉).
假如你不將數據寫入文件中,那么這個選項沒有任何不同.
4.1ThreadGroup
ThreadGroupelements是任何一個測試安排的起先點.全部的測試安
排中的elements都要在一個ThreadGroup中.如名字顯示那樣,
threadgroupelement限制了一組線程,JMeter運用這些線程來執行你
的測試.你可以做如下操作來限制threadgroup:
?設置線程的數量
?設置ramp-up周期
?設置測試執行的次數
每一個線程都會完全和獨立的執行測試安排而不影響其他線程.多線程可
以用于模擬到你的服務器程序的并發連接.
Ramp-upperiod告知JMeter須要多長時間來"ramp-up”去裝載全
部的線程.假如10個線程被運用,而ramp-upperiod為1。。秒,那么
JMeter會花100秒來使得全部的10個線程運行.每個線程將在上個線
程起先后10秒起先.又如,假如有30個線程而ramp-up為120秒.那
么每個線程在延遲4秒后啟動.延遲時間=ramp-upperiod時間數/線程
數
默認的,一個threadgroup被設置為不限定的循環.你可以設置thread
group循環的次數.假如設置為一次,那么JMeter將執行測試一次然后停
止.
Version1.9將允許你預定時間去運行測試.選定Scheduler的
checkbox,你就可以設定時間.
4.2Controllers
JMeter有兩種controller:Samplers和LogicalControllers
Samplers告知JMeter發送懇求到服務器.例如,假如你想JMeter發送
一個懇求,就添加一個RequestSampler.當然你也可以定制
一個懇求,在Sampler中添力口一個或多個ConfigurationElements.
LogicalControllers使你可以定制JMeter發送懇求的邏輯.例如,你可
以添加一個InterleaveLogicController來限制交替運用兩個
RequestSamplers.同樣,一個特定的Logiccontroller,作為
ModificationManager,可以讓你修改懇求的結果.
4.2.1Samplers
Sampler告知JMeter發送懇求到server端.JMeter現在有如卜的
samplers:
?Request
?JDBCRequest
?JavaObjectRequest
?LDAPRequest
?SOAP/XML-RPCRequest
?WebService(SOAP)Request(AlphaCode)
每個sampler都有一些可以設置的properties.你也可以在一個
sampler中添加ConfigurationElements來做更多的設置.當然,值得
留意的是JMeter根據request在tree中添加的次序來發送懇求.
假如你想同時發送多個并發的同一種類的request,例如request,
到同樣一臺服務器.可以考慮運用一個DefaultsConfiguration
Element.每個Controller擁有一個或多個默認元素.
當然不要遺忘添加一個Listener到你的ThreadGroup中來察看和存儲
你的測試結果.
假如你對JMeter對你的request返回的response進行簡潔的校驗很感
愛好,你可以在RequestController中添加一個Assertion.例如,在一
個web程序的壓力測試中,服務器可能會返回多個勝利的”
Response,,,但是頁面或許包含了一些錯誤或者丟失的部分.你可以添
加assertions來檢查特定的HTML標簽,常見的錯誤字符串,等等諸如此
類的數據.JMeter允許你運用常規表達式來創建這些assertions.
4.2.2LogicControllers
LogicController使得用戶可以定制JMeter發送懇求的時機.
LogicControllers可以擁有如下的任何一個作為子elements:
Samplers(requests),ConfigurationElement和其他的Logic
Controllers.LogicControllers可以變更子elements的懇求次序.他們
可以自己修改requests,使得JMeter可以重復發送懇求等等.
為了便于理解LogicControllers在測試安排中所起的作用,舉例如下:
?TestPlan
■ThreadGroup
?OnceOnlyController
?LogicRequest(anrequest)
?LoadSearchPage(sampler)
?InterleaveController
?Search"A"(Sampler)
?Search"B”(Sampler)
?defaultrequest(ConfigurationElement)
?defaultrequest(ConfigurationElement)
?CookieManager(ConfigurationElement)
首先表明白login懇求只會在第一次運行時執行.其余的懇求將自動跳過
它.達到這個效果的緣由就是因為OnceOnlyController的影響左右.
在login之后,下一個Sampler加載了searchpage(想象一下,一個在
用戶登錄后就轉入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等,還
有其他額外的信息).這導致:兩者都是search的懇求,點擊同一個后臺
搜尋引擎.與其給兩者配置相同PATH信息,不如將信息抽象出來給一個
ConfigurationElement.
當InterleaveController傳遞”SearchA”和“SearchB”的懇求時,
將自動運用DefaultRequestConfigurationElement的值來取代
空白的PATH域.所以,我們將這些懇求的PATH域空置,然后將這些信
息放入到ConfigurationElement中.
樹中接下來的element是另外一個DefaultRequest,這次是給
ThreadGroup自己運用的.ThreadGroup擁有一個內置的Logic
Controller,因此,它象上面的介紹的那樣一樣,來運用這個
ConfigurationElement.它將填入到任何一個通過的Request的空白
中.當你做web測試時,這是特別有用的.你可以將全部的
Samplerelements的DOMAIN域空白,然后運用ThreadGroup中添
加的DefaultRequest的信息補充這些空白域.這樣,你可以僅僅
變更一個域就能將整個測試安排應用到另外的server上.否則你須要一
個一個更改Sampler.
最終一個element是CookieManager.全部的web測試中都應當
添加該element,否貝i]JMeter將忽視全部的cookie.在ThreadGroup
級添加這個元素,可以保證全部request將共享同樣的一個cookie.
LogicController可以被組合起來從而獲得多種不同的結果.
4.3Listeners
Listeners供應了獲得在JMeter運行過程中搜集到的信息的訪問方式.
最簡潔的Listener,GraphResultsListener圖示出了響應時間.
Listeners供應了一種圖型化的方式來查看JMeter運行過程中產生的數
據.
另外,Listeners能夠干脆將搜集的到數據存入到文件中以備后用.任何
一個listener都擁有一個設置該文件存儲地址的域.
Listener能夠加到測試中的任何位置.他們將僅僅收集同級別和全部低級
別的elements產生的數據.
4.4Timers
默認的,JMeter線程發送requests時之間沒有任何停頓.我們建議你指
定一個延遲時間.這可以通過添加一個有效的Timer到你的Thread
Group中實現.假如你沒有添加一個延遲時間,JMeter可能會在極短時
間內發送大量的懇求而引起server崩潰.
Timer可以使得JMeter在線程發送每個懇求時有一個延遲.假如你添加
了多個timer到一個ThreadGroup中時,JMeter將運用累計的延遲時
間.
4.5Assertions
Assertions允許你對在測試中從server端返回的回復中驗證某些數據.
運用assertion,你可以實際地測試你的程序返回的值是否是期望值.
例如,你可以檢驗回復字符串中包含一些特殊的文本.你指定的文本可以
是一個Perl-style的常規表達式,然后指定回復中是否包含該文本,或者
整個回復都應當相符合.
你可以給任何一個Sampler添加一個assertion.例如,你可以添加一個
assertion到一個Request來檢查文本"yahoo”.JMeter就會在
返回的回復中察看該文本.假如JMeter不能發覺該文本,那么將標記該懇
求是個失敗的懇求.
為了查看assertion的結果,你須要添加一個AssertionListener到
ThreadGroup中.
4.6ConfigurationElements
ConfigurationElement與Sampler緊密聯系在一起工作.盡管它不能
發送懇求,但是它可以被添加到或者去修改懇求(除了ProxyServer)
之外.
ConfigurationElement只能被所在的treebranch訪問.例如,你在一
個SimpleLogicController中設置了一個CookieManager,那么
這個CookieManager將只能被設置在SimpleLogicController中的
RequestControllers訪問.如下圖中所示,CookieManager能夠被
request“WebPagel"和"WebPage2M訪問,但是不能被“Web
Page3”訪問.
并且,一個treebranch中的configurationelement將擁有更高的優先
級,與同一個parentbranch中的同樣的元索相比.例如,我們定義了
兩個RequestDefaultselements,uWebDefaultsln和"Web
Defaults2".因為我們將“WebDefaults1”放入到一個Loop
Controller中,所以只有"WebPage2”能訪問它.而其他的
requests只能運用我們在“ThreadGroup”(全部其他branch
的“parent”)中設置的“WebDefaults2”.
9TestPlan
9J*ThreadGroup
9T;SimpleController
掰HTTPCookieManager
WebPage1
9LoopController
WebPage2
絹^WebDefaults1
/..WtebPage3
蔑WebDefaults2
Workbench
4.7Pre-ProcessorElements
Pre-Processor在SamplerRequest被創建前執行一些操作.假如一個
Pre-Processor被附加到一個Samplerelement上,那么它將先于
SamplerElement運行.Pre-Processor最主要用于在Sampler運行前
修改一些設置,或者更新一些無法從response文本中獲得的變量.
4.8Post-ProcessorElements
Post-Processor在SamplerRequest被創建后執行一些操作.假如一個
Post-Processor被附加到一個Samplerelement上,那么將緊接著
samplerelement運行后運行.Post-Processor主要用于處理[II復數據,
常常用來從其中獲得某些值.
5建立一個web測試安排
在本章中,你將學習到如何創建一個基本的測試安排用來測試一個web
站點.你創立5個用戶向Jakarta網站的兩個頁面發送懇求.同時,你將設
置這些用戶運行他們的測試兩遍.所以,總共的request數
M-5(user)*2(request)*2(repeat2times)=20Requests.為建立
測試安排,你將運用如下elements:ThreadGroup,Request,
RequestDefaults和GraphResults.
5.1AddingUsers添加用戶
每個JMeter測試安排的第一步都是要添加一個ThreadGroupelement.
ThreadGroup將告知JMeter你要設置的用戶的數目,發送懇求的頻率
和懇求的次數.
選擇測試安排,點擊右鍵,選擇添加ThreadGroup.這時你就應當在
TestPlan下看至ijThreadGroupelement了.假如你沒有看到,那就點
擊TestPlan綻開樹.
然后,你須要修改那些默認的properties.選擇樹中的ThreadGroup
element,在JMeter左側的窗口中應當顯示出ThreadGroup的
ControlPanel.
9&TestPlan
ThreadGroup
yThreadGroup
iiWorkBenchName:threadGroup
第一步,給我們的ThreadGroup添加一個更具體的名稱.在名字域中,
輸入JakartaUsers.
然后增加用戶的數目到5(調用的線程數).
在下一個域中,Ramp-UpPeriod,運用默認值。秒.這個prop6rties告
知JMeter兩個User起先發送懇求之間的延遲時間.例如,你輸入5秒,
JMeter將在5秒后啟動全部的用戶.所以,我們有五個用戶和5秒的
Ramp-upperiod,那么兩個用戶之間起先時間的延遲時1秒.(5
user/5=l).
假如值為0,那么JMeter將立即起先你全部的用戶操作.
最終,清除"Forever”的checkbox,輸入2在LoopCount域中.這個
property告知JMeter要重復運行你的測試幾次.假如你輸入的循環值為
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
現在我們已經定義了我們的用戶,是時間來定義他們要執行的任務了.在
這節,你將指定你的懇求的默認設置.然后,在5.3中,你將添加
Requestelements來運用你制定的默認值.
選擇你的JakartaUserelement.右擊選擇添加ConfigElement中的
RequestDefaults.然后選擇這個新的元素查看他的限制面板.
象大多數的JMeter元素一樣,RequestDefault的限制面板擁有一
個可修改的名稱域.在本例中,運用默認值.
跳到下個域,WebServer'sName/IP.在本例中,全部的測試用例將發
送到同一個web服務器上去:J.將這個域名輸入至ij
該字段中.這是我們唯一指定的默認值,全部留下其他的域為空白值.
留意:RequestDefaultselements不會告知JMeter去發送懇
求.它只是簡潔的定義了requestelements會運用到的默認值.
5.3添加Cookie支持
幾乎全部的web測試要求運用cookie,除非你的程序特殊指明不運用
cookie.添加cookie支持,最簡潔的是添加CookieManager到每
一個ThreadGroup中.這會保證每個線程都獲得自己的cookie,但是交
叉共享全部的Request對象.
添加CookieManager,點擊ThreadGroup,然后選擇添加
CookieManager.
5.4添加Request
在我們的測試安排中,我們須要創建兩個Requests.第一個是訪問
Jakarta的主頁,().其次個是訪問.
右擊添加笫一個Request.然后修改該元素的properties
1.將名字改為HOMEPage
2.設置路徑為.留意的是你不須要設置server的名稱,因為你再
RequestDefaultselement中已經設置了.
鹿ApacheOMeter
FHeEditRunOptionsHelp
9&TestPlan
9JekartaUsersHTTPRequest
#HTTPRgRstDefouRsName:HomePage
/HomePa9e
WcrtBench
OptionalTasks
EiRetrieveANImagesandJavaApplets(HTMLfilesonly)
緊接著添加其次個request.
5.5添加一個Listener來查看和存儲測試結果
最終一個要在測試安排中添加的元索是Listener.這個元素用來存儲全部
的測試結果到一個文件和供應一個數據的視圖模式.
添加GraphResultslistener至ijThreadGroup中.然后指定一個路徑
和文件名用于存儲測試結果.你可以輸入,也可以通過browse按鍵來選
擇?
GraphResults
Name:GraphVisualizer
WrrteAllDatatoaFile
FilenameBrowse...□LogErrorsOnly
Deviation278Throughput137.96985/minuteMedian360
5.6保存測試安排
經管這不是一個必需的步驟,但是我們建議你將測試安排在運行前存入一
個文件.
5.7運行測試安排
在Run菜單中,選擇運行.
一旦JMeter完成了你的測試安排,選擇停止.
假如你選擇將listener中的測試結果存儲到一個文件中,那么你將擁有這
個可以被任何閱讀器查看的文件.不同的閱讀器顯示不同的風格.
6建立一個高級的web測試安排
本節中,你將學習如何建立一個更高級的測試安排來測試web站點
6.1運用URL重寫技術處理用戶的session
假如你的web程序運用URL重寫而不是cookie來保存session的信息,
那么你須要做一些額外的工作來測試你的站點.
為了正確的進行URL回寫,JMeter須要過濾從server端獲的HTML來
獲得唯一的sessionID.運用合適URLRe-WritingModifier來達到
此目的.將你的SessionID作為參數寫入到modifier中,它將自動添加
session到每一個request中.假如request中已經有了該值,將干脆覆
蓋.
示例:
9:TestPlan
勺■'ThreadGroup
IndexPage
9■SimpleController
PlHTTPURLRe-writingModifier
/Login
/DoSomething
AnotherRequest
上圖中顯示了一個運用了URLRe-writing的測試安排.留意modifier被
附加在ThreadGroup上,這樣就保證了全部線程組的懇求都會被應用
到.
HTTPURL-RewritingModifier
Name:〔HTTPURL-RewritingModifier|
SessionArgumentName〔SESSION」。|
□PathExtension(useasseparator)
在上圖中,我們看到的是URLRe-Writingmodifier的GUL僅僅只有一
個域給用戶用于設置sessionID參數的名字.
6.2運用HeaderManager
HeaderManager可以使你定制JMeter發送的懇求的報頭.象
cookieManager-?樣,應當添加到合適的級別上.除非出于某種緣由你
希望你測試不同的request發送不同的報頭.
7建立一個database測試安排
本節中,你將學習假如建立一個測試數據庫的基本測試安排.你將創建一
個有1。個用戶發送2個SQL懇求到數據庫server的測試.同時,你將
告知用戶運行他們的測試三遍.所以,總共的懇求次數是:1。users*2
requests*3times=60JDBCrequests.為了創建測試安排,你將運
用元素:ThreadGroup,JDBCRequest和GraphResults.
7.1添加用戶
每個JMeter測試安排創建的第一步都是添加ThreadGroup元素.
ThreadGroup用于設置發送懇求的用戶數,頻率和懇求總數.
如下圖,設置10個線程代表10個用戶,用戶的延遲時間為。,一共循環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元素來監視和存儲測試結果
如卜圖所示,添加了一個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來查看和存儲測試結果
最終,我們添加了一個SplineVisualizerlistener用于視察和存儲測試
結果.
8.5保存測試安排
8.6運行測試安排
9建立一個LDAP測試安排
9.1添加用戶
創建一個ThreadGroup用于添加用戶和設置懇求次數和頻率.
9.2添加一個登錄限制元素
可以添加一個ConfigElement的LoginConfigElement用于用戶登錄
限制.
9.3添加一個LDAPRequestDefaults
可以添加一個configelement中的LDAPRequestDefaults用于限制一
些共享默認值.
ApacheJMeterB
9.4添加LDAPRequest
添加的LDAPRequest通過選擇不同的測試配置來完成四種操作:添加,
刪除,修改和查詢.
例如,修改:
ApacheJMeterBX
FileEditRunOptionsHelp
9.5添加一個Listener來查看和保存測試結果
添加了一個ViewResultsinTable的listener
ApacheJMeter
FileEditRunOptionsHelp
r
9.6保存測試用例
9.7運行測試用例
10創建一個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用于查看和存儲測試結果.
10.4保存測試安排
10.5運行測試安排
11創建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用于查看和存儲測試結果.
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西方政治制度對移民公民化的影響試題及答案
- 叉車全部考試題庫及答案
- 2025年環境政策與地方實施考試題及答案
- 軟件設計師考試團隊項目展示與試題及答案
- 兔玩網java面試題及答案
- java程序員進bat面試題及答案
- 動畫駕駛考試題及答案
- 人大哲學面試題及答案
- 華泰證券java面試題及答案
- 自我反思的抒情作文5篇
- 江蘇省南京市2022-2023學年八年級下冊期末物理試卷(含答案)
- 《實驗室質量控制》課件
- 湖南省長沙市雅禮集團2023-2024學年八年級下學期期末考試物理試卷
- 世界環境日主題課件
- 職業道德與法治 第13課《學會依法維權》第一框課件《依法理性維權》
- 鄰近鐵路營業線施工安全監測技術規程 (TB 10314-2021)
- 婦科常見病科普知識講座
- 城市土壤主要類型及特點
- 賓館財務安全管理制度
- 《康復護理學基礎》期末考試復習題庫(含答案)
- 寶鋼武鋼并購重組案例研究
評論
0/150
提交評論