版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、安裝JDK:JAVA的環(huán)境變量設(shè)置使用鼠標(biāo)右擊“我的電腦”->屬性->高級->環(huán)境變量系統(tǒng)變量->新建->變量名:JAVA_HOME 變量值:d:jdk系統(tǒng)變量->編輯->變量名:Path 在變量值的最前面加上:%JAVA_HOME%bin; 系統(tǒng)變量->新建->變量名:CLASSPATH 變量值:.;安裝TomcatCATALINA_HOME=d: tomcatUser Manual用戶手冊1 介紹Apache JMeter 是100%純JAVA桌面應(yīng)用程序, 被設(shè)計為用于測試CS結(jié)構(gòu)的軟件.同時也可以用來測試靜態(tài)和動態(tài)資源的性能, 例如
2、:靜態(tài)文件, Java Servlets, CGI Scripts, Java Object, 數(shù)據(jù)庫和FTP服務(wù)器等等. JMeter可用于模擬大量負(fù)載來測試一臺服務(wù)器,網(wǎng)絡(luò)或者對象的健壯性或者分析不同負(fù)載下的整體性能.同時, JMeter可以幫助你對你的應(yīng)用程序進(jìn)行回歸測試. 通過你創(chuàng)建的測試腳本和assertions來驗證你的程序返回了所期待的值. 為了更高的適應(yīng)性, JMeter允許你使用常規(guī)表達(dá)式來創(chuàng)建這些assertions.2 開始2.1 安裝下載安裝最新的版本, 將會包含所有你需要建立和運行Web, FTP, JDBC和JNDI測試的文件.如果你想進(jìn)行JDBC測試, 你需要使用
3、合適的JDBC driver. JMeter中不包含JDBC drivers.其他可能需要下載的軟件:l Bean Shelll Java Activation Framework needed for Java Maill Java Mail needed for mail visualiser and SOAP testl JMS for JMS samplesl General Java Kit接下來一步, 就是瀏覽”建立測試計劃”一章來熟悉JMeter的基本操作, 例如:添加和刪除元素. 最后,瀏覽適當(dāng)?shù)恼鹿?jié)來學(xué)習(xí)如何建立不同種類的測試計劃. 例如, 如果你對Web應(yīng)用程序的測試比較感
4、興趣, 就瀏覽”建立一個Web測試計劃”章節(jié). 其他種類的測試計劃建立的章節(jié)包括:JDBC, FTP和JNDI.一旦你熟悉了建立和運行JMeter測試計劃, 就可以開始熟悉各種配置參數(shù), 例如: timers, listeners, assertions和其他的參數(shù), 來幫助你更好地控制你地測試計劃.2.2 系統(tǒng)要求JMeter 1.8 以上的版本需要JDK1.4以上的版本支持運行.JMeter可以運行在如下操作系統(tǒng)上: Unix, Windows和Open VMS.2.3 可選項目如果你打算進(jìn)行JMeter開發(fā)或者使用Sun的Java標(biāo)準(zhǔn)擴(kuò)展包,你需要如下所列的可選包:2.3.1 Java
5、Compiler需要1.4以上的JDK版本2.3.2 SAX XML ParserJMeter默認(rèn)使用Apache的Xerces XML parser. 如果你想使用一個不同的XML parser, 將第三方的parser包放入JMeter的classpath中,然后使用設(shè)置的parser包的全名更新文件perties2.3.3 Email SupportJMeter擁有有限的郵件功能來發(fā)送測試結(jié)果到指定郵箱中. 應(yīng)用郵箱功能,需要將Sun的JavaMail包放入JMeter的classpath中并激活.2.3.4 SSL Encryption為使用HTTPS測試web服務(wù)
6、器, JMeter需要設(shè)立SSL機(jī)制. 將所需要的SSL類包放入JMeter的classpath中, 更新perties來注冊SSL Provider.可以使用SSL Manager 用來管理這些證書.注意: 在JDK 1.4以上版本, SSL已經(jīng)作為標(biāo)準(zhǔn)庫加入.2.2.5 JDBC Driver你需要將你的數(shù)據(jù)庫供應(yīng)商提供的JDBC drivers添加到classpath中來進(jìn)行JDBC測試.2.2.6 Apache SOAPApache SOAP測試需要mail. jar和activation.jar. 只需要將下載的兩個jar文件復(fù)制到JMeter下的lib目錄中,
7、JMeter會自動的識別和使用它們.2.3 運行運行JMeter, 使用jmeter.bat (windows) 或 jmeter (UNIX).2.3.1 JMeter的classpathJMeter自動在/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)境變量沒有任何作用. 這是因為J
8、Meter使用”java jar”開始, java命令自動忽略CLASSPATH值, 同時-jar選項的使用將屏蔽掉-classpath和-cp選項.2.3.2 使用代理服務(wù)器如果你在防火墻或者代理服務(wù)器后進(jìn)行測試, 你需要給JMeter提供防火墻和代理服務(wù)器的hostname和port號. 在命令行運行 jmeter.bat或jmeter命令并使用如下參數(shù):-H 代理服務(wù)器的hostname或者IP地址-P 代理服務(wù)器的port號-u 代理服務(wù)器驗證使用的用戶名-a 代理服務(wù)器驗證使用的用戶密碼示例:jmeter H yahoo P 8080 u test a password2.3.3 非
9、GUI模式對于那些非交互的測試, 你可以使用非GUI的模式運行JMeter. 使用如下命令:-n 指定的JMeter運行在non-GUI模式下-t 包含測試計劃的JMX文件的名稱-l 用于記錄簡單結(jié)果的JTL文件名稱.-r 運行所有的在perties中指定的遠(yuǎn)程主機(jī).(或在命令行中提供的覆蓋屬性提供的遠(yuǎn)程主機(jī)名.也可以同時提供防火墻或者代理服務(wù)器的信息-H 服務(wù)器名或IP地址-P 端口號示例:jmeter n t my.jmx l log.jtl H yahoo P 88002.3.4 服務(wù)器模式為了對分布式測試, 可以運行在服務(wù)器模式下, 然后通過GUI來控制每個服務(wù)器.
10、運行jmeter-server/jmeter-server.bat, 附加下列可選項:-H 代理服務(wù)器的hostname或IP地址-P 端口號示例:jmeter-server H yahoo P 80002.3.5 通過命令行來重載PropertiesJava system properties, JMeter properties和logging properties 能夠直接通過命令行來直接重載而不用修改perties文件. 使用以下參數(shù)項:-Dprop name=value 定義一個java system property值-Jprop name=value 重載一個
11、JMeter property-Lcategory=priority 重載一個logging setting, 設(shè)置一個指定的類別名給指定的優(yōu)先級別-L標(biāo)志位可以不指定category,將其設(shè)為root級別示例:jmeter Duser.dir=/home/mstover/jmeter_stuff -Jremote_hosts= Ljmeter.engine=DEBUGjmeter LDEBUG注意: 命令行輸入的properties在啟動時先處理, 但是晚于logging system的建立. 所以嘗試使用-J標(biāo)志去更新log_level或者log_file的propert
12、ies將沒有任何效果.2.3.6 Logging和error信息如果JMeter檢查到一個錯誤, 一個信息就被寫道log文件中. Log文件的名字是在perties文件中定義的. 默認(rèn)值位jmeter.log, 在JMeter的開始目錄中可以看到, 例如 bin目錄中.除了記錄錯誤信息, jmeter.log文件中同時記錄了一些測試運行的信息. 例如:10/17/2003 12:19:20 PM INFO - jmeter.JMeter: Version 1.9.20031002 10/17/2003 12:19:45 PM INFO - jmeter.gui.action
13、.Load: Loading file: c:mytestfilesBSH.jmx 10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Running the test! 10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group BSH. Ramp up = 1. 10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEng
14、ine: Continue on error 10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 started 10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 is done 10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Test has endedLog文件有助于定位錯誤出現(xiàn)的原因,因為它并未打斷測試來顯示一個err
15、or窗口.2.4 配置JMeter如果你想修改JMeter運行使用的properties,你可以通過兩種方式:修改bin目錄中的文件perties或者創(chuàng)建你自己的properties文件使用命令行來指定該文件.Parameters AttributeDescriptionRvider你可以指定一個類支持SSL.如果你使用sun的JSSE,那么是: .ernal.ssl.Provider. JMeter默認(rèn)的https支持在JDK1.4中包含. No xml.parser你可以指定一個你自己的XML parser. 默認(rèn)值為: org
16、.apache.xerces.parsers.SAXParser No user.dirJMeter用于保存和裝載測試用例的目錄. No remote_hosts使用逗號分割的遠(yuǎn)程JMeter主機(jī).如果你運行在分布式環(huán)境下,列出你擁有的運行的JMeter遠(yuǎn)程主機(jī).允許你通過GUI去控制這些機(jī)器.No not_in_menu一個組件的列表,都是你不想在JMeter的菜單中看到的.由于JMeter添加了越來越多的組建,你可能希望自己定制你的JMeter來僅僅顯示那些你感興趣的組建.你可以列出他們類名或者類的標(biāo)簽(在JMeter界面中顯示的字符串)在這里,他們將不會被顯示. No3 建立測試計劃一個
17、測試計劃描述了一系列JMeter在運行中要執(zhí)行的步驟. 一個完整的測試計劃包含一個或多個Thread Groups, logic controllers, sample generating controllers, listeners, timers, assertions和configuration elements.3.1 添加刪除 Elements添加elements到測試計劃,可以通過在tree中element上點擊右鍵,然后從add列表中選擇一個新的element. 同樣,elements也可以通過open選項從一個文件中載入.刪除一個element,確定該element被選定,右
18、擊選擇刪除選項.3.2 載入和存儲elements載入文件中的elements,在已有的tree中點擊右鍵, 然后選擇open選項. 選擇elements存儲的文件, JMeter將載入文件中的所有elements到tree中.存儲tree的elements, 選擇一個element然后右擊, 選擇save選項.JMeter會存儲選定的element, 以及所有的子elements. 這樣你就可以存儲測試樹的一段, 單獨的element或者整個測試計劃.3.3 配置tree的elements任何一個一個測試樹中的element都可以在JMeter的右邊框架顯示. 這樣允許你來配置該測試elem
19、ent的屬性. 能夠配置什么屬性取決于你選定的element的類型.3.4 運行測試計劃在run菜單中選擇開始來運行測試計劃. 停止測試計劃, 從菜單中選擇停止. JMeter不會自動的在運行測試計劃時有任何表現(xiàn). 一些listeners使得JMeter運行表現(xiàn)出來.但是唯一的方法是檢查run菜單中的start選項, 如果是disable的而且stop是enabled,那么JMeter就在運行你的測試計劃,至少表面上看來如此.3.5 Scoping RulesJMeter測試樹中包含的elements是分級和有次序的.一些elements在測試中有嚴(yán)格的等級要求(Listeners, Conf
20、ig Elements, Post-Processors, Pre-Processors, Assertions, Timers), 而其他一些有primarily ordered的要求(controllers, samplers). 當(dāng)你創(chuàng)建測試計劃時, 你需要建立一個有次序的sample請求(通過sampler), 這些反映了一組需要執(zhí)行的測試步驟. 這些請求經(jīng)常在有序的controllers中組織.例圖1請求的次序?qū)? one, two, three, four.有些controllers會影響他們sub-elements, 你可以在component reference 中查看這些.
21、一些其他的elements是有級別的. 例如, Assertion在測試樹中是有級別的.如果他的父親節(jié)點是一個request,那么它將僅僅影響該request. 如果父節(jié)點是一個controller, 那么它將影響該controller的所有后代的請求. 例如:Assertion #1僅僅應(yīng)用到Request One上. 而Assertion#2應(yīng)用到Request Two和Three上.另外一個關(guān)于Timers的示例:在這個例子中, request的名字反映了他們在測試中應(yīng)該執(zhí)行的次序. Timer#1將應(yīng)用到Request Two, Three和Four上(注意對于分等級的elements
22、如何排序毫不相關(guān)). Aserrtion#1將僅僅應(yīng)用到Request Three上. Timer#2將影響所有的請求.如果你想想任何一個request通過樹的路徑被傳遞, 到它的父節(jié)點,在到它的父節(jié)點的父節(jié)點, 以此類推, 在每一級的父節(jié)點上集合所有的configuration elements, 那么你就知道它是如何工作的了.注意:對于Configuration elements中的 Header Manager, Cookie Manager和Authorization manager來說, 與其他的Configuration Default elements不同. Configurat
23、ion Default elements被整合成一個Sampler訪問的集合.而Manager的設(shè)置不會被整合.如果超過一個的Manger在Sampler的范圍中,只有一個Manager被使用,但是目前還無法判斷那個被使用.4 測試計劃的elements測試計劃對象現(xiàn)在擁有了一個新的checkbox選項, 叫做”功能測試”. 如果選擇,JMeter將記錄所有server為每個sample返回的值. 如果你已經(jīng)在測試listeners中選定了一個文件, 那么這些數(shù)據(jù)將被寫入到文件中. 這個有助于你通過一個小型的測試來檢驗JMeter是否配置正確, 而你的服務(wù)器返回正確的結(jié)果. 值得注意的是這個文
24、件的大小將增長的很快使得JMeter的性能降低. 這個選項在做壓力測試時需要關(guān)閉掉(默認(rèn)為關(guān)閉).如果你不將數(shù)據(jù)寫入文件中,那么這個選項沒有任何不同.4.1 Thread GroupThread Group elements 是任何一個測試計劃的開始點. 所有的測試計劃中的elements都要在一個Thread Group中. 如名字顯示那樣, thread group element控制了一組線程, JMeter使用這些線程來執(zhí)行你的測試. 你可以做如下操作來控制thread group:l 設(shè)置線程的數(shù)量l 設(shè)置ramp-up周期l 設(shè)置測試執(zhí)行的次數(shù)每一個線程都會完全和獨立的執(zhí)行測試計劃
25、而不影響其他線程. 多線程可以用于模擬到你的服務(wù)器程序的并發(fā)連接.Ramp-up period 告訴JMeter需要多長時間來”ramp-up”去裝載全部的線程. 如果10個線程被使用, 而ramp-up period為100秒, 那么JMeter會花100秒來使得所有的10個線程運行. 每個線程將在上個線程開始后10秒開始. 又如, 如果有30個線程而ramp-up為120秒.那么每個線程在延遲4秒后啟動.延遲時間=ramp-up period時間數(shù)/線程數(shù)默認(rèn)的,一個thread group被設(shè)置為不限定的循環(huán). 你可以設(shè)置thread group循環(huán)的次數(shù).如果設(shè)置為一次, 那么JMet
26、er將執(zhí)行測試一次然后停止.Version 1.9 將允許你預(yù)定時間去運行測試. 選定Scheduler的checkbox, 你就可以設(shè)定時間.4.2 ControllersJMeter有兩種controller: Samplers和Logical ControllersSamplers告知JMeter發(fā)送請求到服務(wù)器. 例如, 如果你想JMeter發(fā)送一個HTTP請求, 就添加一個HTTP Request Sampler. 當(dāng)然你也可以定制一個請求, 在Sampler中添加一個或多個 Configuration Elements.Logical Controllers使你可以定制JMeter
27、發(fā)送請求的邏輯. 例如, 你可以添加一個Interleave Logic Controller來控制交替使用兩個HTTP Request Samplers. 同樣, 一個特定的Logic controller, 作為Modification Manager, 可以讓你修改請求的結(jié)果.4.2.1 SamplersSampler 告知JMeter發(fā)送請求到server端. JMeter現(xiàn)在有如下的samplers:l FTP Requestl HTTP Requestl JDBC Requestl Java Object Requestl LDAP Requestl SOAP/XML-RPC Re
28、questl Web Service (SOAP) Request (Alpha Code)每個sampler都有一些可以設(shè)置的properties. 你也可以在一個sampler中添加Configuration Elements來做更多的設(shè)置. 當(dāng)然, 值得注意的是JMeter按照request在tree中添加的次序來發(fā)送請求.如果你想同時發(fā)送多個并發(fā)的同一種類的request, 例如HTTP request, 到同樣一臺服務(wù)器. 可以考慮使用一個Defaults Configuration Element. 每個Controller擁有一個或多個默認(rèn)元素.當(dāng)然不要忘記添加一個Listene
29、r到你的Thread Group中來察看和存儲你的測試結(jié)果.如果你對JMeter對你的request返回的response進(jìn)行簡單的校驗很感興趣, 你可以在Request Controller中添加一個Assertion. 例如, 在一個web程序的壓力測試中, 服務(wù)器可能會返回多個成功的”HTTP Response”, 但是頁面也許包含了一些錯誤或者丟失的部分. 你可以添加assertions來檢查特定的HTML標(biāo)簽,常見的錯誤字符串,等等諸如此類的數(shù)據(jù). JMeter允許你使用常規(guī)表達(dá)式來創(chuàng)建這些assertions.4.2.2 Logic ControllersLogic Control
30、ler使得用戶可以定制JMeter發(fā)送請求的時機(jī). Logic Controllers可以擁有如下的任何一個作為子elements: Samplers(requests), Configuration Element和其他的Logic Controllers. Logic Controllers可以改變子elements的請求次序. 他們可以自己修改requests, 使得JMeter可以重復(fù)發(fā)送請求等等.為了便于理解Logic Controllers在測試計劃中所起的作用, 舉例如下:l Test Plann Thread Groupu Once Only Controllerl Logic
31、 Request (an HTTP request)u Load Search Page (HTTP sampler)u Interleave Controllerl Search “A” (HTTP Sampler)l Search “B” (HTTP Sampler)l HTTP default request (Configuration Element)u HTTP default request (Configuration Element)u Cookie Manager (Configuration Element)首先表明了login請求只會在第一次運行時執(zhí)行. 其余的請求將自
32、動跳過它. 達(dá)到這個效果的原因就是因為Once Only Controller的影響左右.在login之后, 下一個Sampler加載了search page (想象一下, 一個在用戶登錄后就轉(zhuǎn)入search頁面來做搜索的web程序). 這個僅僅是一個簡單的請求, 并未通過任何Logic Controller的篩選過程.在search頁面加載后, 我們想做一些搜索. 實際上, 我們要做兩個不同的搜索. 然而, 我們想在每個獨立的搜索中重新加載search頁面. 我們可以用四個簡單的HTTP request elements來達(dá)到目的(載入search頁面,搜索”A”,載入search頁面,搜索
33、”B”). 而實際上, 我們使用了另一個方法, 我們使用Interleave Controller, 它將每次運行一個完整的測試只使用一個子element的request. 而且能夠保持這些子elements的次序來運行. 注意: HTTP Request Defaults是屬于Interleave Controller的. 想象一下”search A”和”Search B”分享同一個”PATH”信息(一個指定的HTTP請求包括domain, port, method, protocol, path和arguments等, 還有其他額外的信息). 這導(dǎo)致: 兩者都是search的請求, 點擊同
34、一個后臺搜索引擎. 與其給兩者配置相同PATH信息,不如將信息抽象出來給一個Configuration Element.當(dāng)Interleave Controller傳遞”Search A”和”Search B”的請求時, 將自動使用HTTP Default Request Configuration Element的值來取代空白的PATH域. 所以, 我們將這些請求的PATH域空置, 然后將這些信息放入到Configuration Element中.樹中接下來的element是另外一個HTTP Default Request, 這次是給Thread Group自己使用的. Thread Gro
35、up擁有一個內(nèi)置的Logic Controller, 因此, 它象上面的介紹的那樣一樣,來使用這個Configuration Element. 它將填入到任何一個通過的Request的空白中. 當(dāng)你做web測試時, 這是非常有用的. 你可以將所有的HTTP Sampler elements的DOMAIN域空白, 然后使用Thread Group中添加的HTTP Default Request的信息補充這些空白域. 這樣, 你可以僅僅改變一個域就能將整個測試計劃應(yīng)用到另外的server上. 否則你需要一個一個更改Sampler.最后一個element是HTTP Cookie Manager. 所
36、有的web測試中都應(yīng)該添加該element, 否則JMeter將忽略所有的cookie. 在Thread Group級添加這個元素,可以保證所有HTTP request將共享同樣的一個cookie.Logic Controller可以被組合起來從而獲得多種不同的結(jié)果.4.3 ListenersListeners提供了獲取在JMeter運行過程中搜集到的信息的訪問方式. 最簡單的Listener, Graph Results Listener圖示出了響應(yīng)時間. Listeners提供了一種圖型化的方式來查看JMeter運行過程中產(chǎn)生的數(shù)據(jù).另外, Listeners能夠直接將搜集的到數(shù)據(jù)存入到文
37、件中以備后用. 任何一個listener都擁有一個設(shè)置該文件存儲地址的域.Listener能夠加到測試中的任何位置. 他們將僅僅收集同級別和所有低級別的elements產(chǎn)生的數(shù)據(jù).4.4 Timers默認(rèn)的,JMeter線程發(fā)送requests時之間沒有任何停頓. 我們建議你指定一個延遲時間. 這可以通過添加一個有效的Timer到你的Thread Group中實現(xiàn). 如果你沒有添加一個延遲時間, JMeter可能會在極短時間內(nèi)發(fā)送大量的請求而引起server崩潰.Timer可以使得JMeter在線程發(fā)送每個請求時有一個延遲. 如果你添加了多個timer到一個Thread Group中時, JM
38、eter將使用累計的延遲時間.4.5 AssertionsAssertions 允許你對在測試中從server端返回的回復(fù)中驗證某些數(shù)據(jù). 使用assertion, 你可以實際地測試你的程序返回的值是否是期望值.例如, 你可以檢驗回復(fù)字符串中包含一些特殊的文本. 你指定的文本可以是一個Perl-style的常規(guī)表達(dá)式, 然后指定回復(fù)中是否包含該文本, 或者整個回復(fù)都應(yīng)該相符合.你可以給任何一個Sampler添加一個assertion. 例如, 你可以添加一個assertion到一個HTTP Request來檢查文本”yahoo”. JMeter就會在返回的回復(fù)中察看該文本. 如果JMeter不
39、能發(fā)現(xiàn)該文本,那么將標(biāo)志該請求是個失敗的請求.為了查看assertion的結(jié)果, 你需要添加一個Assertion Listener到Thread Group中.4.6 Configuration ElementsConfiguration Element與Sampler緊密聯(lián)系在一起工作. 盡管它不能發(fā)送請求, 但是它可以被添加到或者去修改請求(除了HTTP Proxy Server)之外.Configuration Element只能被所在的tree branch訪問. 例如, 你在一個Simple Logic Controller中設(shè)置了一個HTTP Cookie Manager, 那么
40、這個Cookie Manager將只能被設(shè)置在Simple Logic Controller中的HTTP Request Controllers訪問. 如下圖中所示, Cookie Manager 能夠被HTTP request “Web Page1”和”Web Page2”訪問, 但是不能被”Web Page3”訪問.并且, 一個tree branch中的configuration element 將擁有更高的優(yōu)先級, 與同一個parent branch 中的同樣的元素相比. 例如, 我們定義了兩個 HTTP Request Defaults elements, “Web Defaults
41、1”和”Web Defaults 2”. 因為我們將”Web Defaults 1”放入到一個Loop Controller中,所以只有”Web Page 2”能訪問它. 而其他的HTTP requests只能使用我們在”Thread Group”(所有其他branch的”parent”)中設(shè)置的”Web Defaults 2”.4.7 Pre-Processor ElementsPre-Processor在Sampler Request被創(chuàng)建前執(zhí)行一些操作. 如果一個Pre-Processor被附加到一個Sampler element上, 那么它將先于Sampler Element運行. P
42、re-Processor最主要用于在Sampler運行前修改一些設(shè)置, 或者更新一些無法從response文本中獲取的變量.4.8 Post-Processor ElementsPost-Processor在Sampler Request被創(chuàng)建后執(zhí)行一些操作. 如果一個Post-Processor被附加到一個Sampler element上, 那么將緊接著sampler element運行后運行. Post-Processor主要用于處理回復(fù)數(shù)據(jù), 常常用來從其中獲取某些值.5 建立一個web測試計劃在本章中, 你將學(xué)習(xí)到如何創(chuàng)建一個基本的測試計劃用來測試一個web站點. 你創(chuàng)立5個用戶向Ja
43、karta網(wǎng)站的兩個頁面發(fā)送請求. 同時,你將設(shè)置這些用戶運行他們的測試兩遍. 所以, 總共的request數(shù)是:5(user)*2(request)*2(repeat 2 times)=20 HTTP Requests. 為建立測試計劃, 你將使用如下elements: Thread Group, HTTP Request, HTTP Request Defaults和Graph Results.5.1 Adding Users 添加用戶每個JMeter測試計劃的第一步都是要添加一個Thread Group element. Thread Group將告訴JMeter 你要設(shè)置的用戶的數(shù)目,
44、 發(fā)送請求的頻率和請求的次數(shù).選擇測試計劃, 點擊右鍵, 選擇添加Thread Group. 這時你就應(yīng)該在Test Plan下看到Thread Group element了. 如果你沒有看到, 那就點擊Test Plan展開樹.然后, 你需要修改那些默認(rèn)的properties. 選擇樹中的Thread Group element, 在JMeter左側(cè)的窗口中應(yīng)該顯示出Thread Group的Control Panel.第一步, 給我們的Thread Group 添加一個更詳細(xì)的名稱. 在名字域中, 輸入Jakarta Users.然后增加用戶的數(shù)目到5 (調(diào)用的線程數(shù)).在下一個域中, R
45、amp-Up Period, 使用默認(rèn)值0秒. 這個properties告訴JMeter兩個User開始發(fā)送請求之間的延遲時間. 例如,你輸入5秒, JMeter將在5秒后啟動所有的用戶. 所以, 我們有五個用戶和5秒的Ramp-up period, 那么兩個用戶之間開始時間的延遲時1秒.(5 user/5=1).如果值為0, 那么JMeter將立刻開始你所有的用戶操作.最后,清除”Forever”的checkbox, 輸入2在Loop Count域中. 這個property告訴JMeter要重復(fù)運行你的測試幾次. 如果你輸入的循環(huán)值為1, 那么JMeter將只運行一次你的測試. 如果要JMe
46、ter不停運行你的測試,選擇Forever.在大部分程序中, 你不得不手工方式來更新你在控制面板中的更改. 然而, 在JMeter中, 控制面板將自動的接受你的更改. 例如, 你改變了一個element的名稱, 樹將自動更新為最新的文本在你離開控制面板后(例如,選擇了另一個element).5.2 添加Default HTTP Request Properties現(xiàn)在我們已經(jīng)定義了我們的用戶, 是時間來定義他們要執(zhí)行的任務(wù)了. 在這節(jié), 你將指定你的HTTP 請求的默認(rèn)設(shè)置. 然后, 在5.3中, 你將添加HTTP Request elements來使用你制定的默認(rèn)值.選擇你的Jakarta
47、User element.右擊選擇添加Config Element中的HTTP Request Defaults. 然后選擇這個新的元素查看他的控制面板.象大多數(shù)的JMeter元素一樣, HTTP Request Default的控制面板擁有一個可修改的名稱域. 在本例中,使用默認(rèn)值.跳到下個域, Web Servers Name/IP. 在本例中, 所有的測試用例將發(fā)送到同一個web服務(wù)器上去: J. 將這個域名輸入到該字段中. 這是我們唯一指定的默認(rèn)值, 所有留下其他的域為空白值.注意:HTTP Request Defaults elements 不會告訴
48、JMeter去發(fā)送HTTP請求. 它只是簡單的定義了HTTP request elements會使用到的默認(rèn)值.5.3 添加Cookie支持幾乎所有的web測試要求使用cookie, 除非你的程序特別指明不使用cookie. 添加cookie支持, 最簡單的是添加HTTP Cookie Manager到每一個Thread Group中. 這會保證每個線程都獲得自己的cookie, 但是交叉共享所有的HTTP Request 對象.添加HTTP Cookie Manager, 點擊Thread Group, 然后選擇添加HTTP Cookie Manager.5.4 添加HTTP Request
49、在我們的測試計劃中, 我們需要創(chuàng)建兩個HTTP Requests. 第一個是訪問Jakarta的主頁, (). 第二個是訪問/site/guidelines.html.右擊添加第一個HTTP Request. 然后修改該元素的properties1. 將名字改為 HOME Page2. 設(shè)置路徑為 “/”. 注意的是你不需要設(shè)置server的名稱, 因為你再HTTP Request Defaults element中已經(jīng)設(shè)置了.緊接著添加第二個 HTTP request.5.5 添加一個Listen
50、er來查看和存儲測試結(jié)果最后一個要在測試計劃中添加的元素是Listener. 這個元素用來存儲所有的測試結(jié)果到一個文件和提供一個數(shù)據(jù)的視圖模式.添加Graph Results listener到Thread Group中. 然后指定一個路徑和文件名用于存儲測試結(jié)果. 你可以輸入, 也可以通過browse按鍵來選擇.5.6 保存測試計劃經(jīng)管這不是一個必須的步驟, 但是我們建議你將測試計劃在運行前存入一個文件. 5.7 運行測試計劃在Run菜單中, 選擇運行.一旦JMeter完成了你的測試計劃, 選擇停止.如果你選擇將listener中的測試結(jié)果存儲到一個文件中, 那么你將擁有這個可以被任何瀏覽器
51、查看的文件. 不同的瀏覽器顯示不同的風(fēng)格.6 建立一個高級的web測試計劃本節(jié)中, 你將學(xué)習(xí)如何建立一個更高級的測試計劃來測試web站點6.1 使用URL重寫技術(shù)處理用戶的session如果你的web程序使用URL重寫而不是cookie來保存session的信息, 那么你需要做一些額外的工作來測試你的站點.為了正確的進(jìn)行URL回寫, JMeter需要過濾從server端獲的HTML來獲得唯一的session ID.使用合適HTTP URL Re-Writing Modifier來達(dá)到此目的. 將你的Session ID作為參數(shù)寫入到modifier中, 它將自動添加session到每一個req
52、uest中. 如果request中已經(jīng)有了該值, 將直接覆蓋.示例:上圖中顯示了一個使用了URL Re-writing的測試計劃. 注意modifier被附加在Thread Group上, 這樣就保證了所有線程組的請求都會被應(yīng)用到.在上圖中, 我們看到的是URL Re-Writing modifier的GUI. 僅僅只有一個域給用戶用于設(shè)置session ID參數(shù)的名字. 6.2 使用Header ManagerHTTP Header Manager 可以使你定制JMeter發(fā)送的請求的報頭. 象HTTP cookie Manager一樣, 應(yīng)該添加到合適的級別上. 除非出于某種原因你希望你測
53、試不同的request發(fā)送不同的報頭.7 建立一個database測試計劃本節(jié)中, 你將學(xué)習(xí)如果建立一個測試數(shù)據(jù)庫的基本測試計劃.你將創(chuàng)建一個有10個用戶發(fā)送2個SQL請求到數(shù)據(jù)庫server的測試. 同時, 你將告訴用戶運行他們的測試三遍. 所以,總共的請求次數(shù)是:10 users * 2 requests * 3 times = 60 JDBC requests. 為了創(chuàng)建測試計劃, 你將使用元素: Thread Group, JDBC Request 和 Graph Results.7.1 添加用戶每個JMeter測試計劃創(chuàng)建的第一步都是添加Thread Group 元素. Thread
54、 Group用于設(shè)置發(fā)送請求的用戶數(shù),頻率和請求總數(shù).如下圖, 設(shè)置10個線程代表10個用戶,用戶的延遲時間為0,一共循環(huán)3次.7.2 添加JDBC請求盡管有JDBC DATABASE Connection Pool Defaults, JDBC Database Login Defaults 和 JDBC SQL Query Defaults 組件可用, 但是本例中并未涉及.我們要添加兩個JDBC Request. 下圖為請求一.注意: 需要將需要的JDBC的drive放入Classpath中.下圖為請求二.7.3 添加Listener元素來監(jiān)視和存儲測試結(jié)果如下圖所示, 添加了一個Grap
55、h Result Listener.7.4 保存測試計劃7.5 運行測試計劃8 建立一個FTP測試計劃1 添加用戶通過添加一個Thread Group來添加用戶2 添加Default FTP Request Properties添加一個config element中的FTP Request Default 用于所有的FTP requests.3 添加 FTP Requests在我們示例中, 要添加兩個FTP請求.請求一:請求二:8.4 添加一個Listener來查看和存儲測試結(jié)果最后, 我們添加了一個Spline Visualizer listener用于觀察和存儲測試結(jié)果.8.5 保存測試計
56、劃8.6 運行測試計劃9 建立一個LDAP測試計劃9.1 添加用戶創(chuàng)建一個Thread Group用于添加用戶和設(shè)置請求次數(shù)和頻率.9.2 添加一個登錄控制元素可以添加一個Config Element的Login Config Element用于用戶登錄控制.9.3 添加一個LDAP Request Defaults可以添加一個config element中的LDAP Request Defaults用于控制一些共享默認(rèn)值.9.4 添加LDAP Request添加的LDAP Request通過選擇不同的測試配置來完成四種操作: 添加,刪除,修改和查詢.例如, 修改:9.5 添加一個Listener來查看和保存測試結(jié)果添加了一個View Results in Table的listener9.6 保存測試用例9.7 運行測試用例10 創(chuàng)建一個Web Service測試計劃對于Web Service Sampler, 當(dāng)前是使用 Apache Soap driver. 需要ac
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版市政工程挖掘機(jī)租賃及施工配合合同協(xié)議書3篇
- 2025版智能交通管理系統(tǒng)軟件開發(fā)與運營服務(wù)合同3篇
- 2025版城市綠地養(yǎng)護(hù)勞務(wù)分包合同模板4篇
- 企業(yè)人力資源管理概念
- 二零二五版知識產(chǎn)權(quán)保密與競業(yè)限制服務(wù)合同3篇
- 塑料薄膜光學(xué)性能研究考核試卷
- 2025版事業(yè)單位教師崗位聘用合同續(xù)簽協(xié)議書3篇
- 2025年度碼頭轉(zhuǎn)租及船舶??糠?wù)外包合同4篇
- 04毛首鞭形線蟲簡稱鞭蟲47課件講解
- 2025年食品行業(yè)食品安全風(fēng)險評估合同范本3篇
- 垃圾處理廠工程施工組織設(shè)計
- 天皰瘡患者護(hù)理
- 2025年蛇年新年金蛇賀歲金蛇狂舞春添彩玉樹臨風(fēng)福滿門模板
- 《建筑制圖及陰影透視(第2版)》課件 4-直線的投影
- 新生物醫(yī)藥產(chǎn)業(yè)中的人工智能藥物設(shè)計研究與應(yīng)用
- 防打架毆斗安全教育課件
- 損失補償申請書范文
- 壓力與浮力的原理解析
- 鐵路損傷圖譜PDF
- 裝修家庭風(fēng)水學(xué)入門基礎(chǔ)
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)二 社群的種類與維護(hù)
評論
0/150
提交評論