JMeter 使用手册文档
JMeter中文使用手册.pdf
JMeter中文使用手册.pdf
--nonHTTPPSample
tn="Listen1-1"dt="text"de="ISO-8859-1"by="10">
Listen1-1
Mixed2.unknown
ssssss
取样节点名字可以是"sample"或者"httpSample"。
取样器属性意义如下:
属性内容
t用时(ms)
lt延时(ms)-不是所有的取样器支持这个
ts时间标志
s是否成功
lb标签
rc响应代码
rm响应消息
tn线程名
dt数据类型
de数据编码
by字节数
ng在这个线程组中活跃的线程数
na所有线程组中的活跃线程数
JMeter2.1和2.1.1版本保存响应代码为"rs",但是读取它期望是
"rc"。
这个bug已经被修复,所以为"rc";
"rc"或者"rs"都可以被读取。
14.7保存响应数据
像上面展示的那样,如果需要响应数据可以被保存为XML日志文件。
然而,这将使文件相当大,并且文本必
须被编码才可以被安静的验证XML。
同样图片不会被包括。
另一个解决方案是使用后置处理器保存响应结果到文件。
这样为每个取样产生一个新的文件,并且保存文件
为取样器名。
文件名会被包含在一个取样日志输入。
当取样日志文件被加载时如果需要数据将从文件从新得
到。
JMeter中文使用手册
Apache 软件组织的 Stefano Mazzocchi 是 JMeter 的创始人。他写出它起初是为了测试 Apache JServ 的性能 (一个已经被 Apache Tomcat 工程所替代的工程)。我们重新设计 JMeter 来增强用户界面和增加功能测试的 能力。 1.2 未来
我们希望看到作为开发者利用它的可插入架构使 JMeter 的功能快速扩展。未来发展的主要目标是在没有危机 JMeter 的负载测试能力的情况下尽可能使 JMeter 成为最实用的回归测试工具。 2. 入门
1. 简介
Apache JMeter 是 100%纯 java 桌面应用程序,被设计用来测试 C/S 结构的软件(例如 web 应用程序)。它可 以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库, FTP 服务器等等。JMeter 可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负 载类型下的全面性能。 另外,JMeter 能够通过让你们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而 帮助我们回归测试我们的程序。为了最大的灵活性,JMeter 允许我们使用正则表达式创建断言。 1.1 历史
开始使用JMeter最容易的方法是首先下载最新版 并且安装它。这个版本包含所有你在构建和运行Web,FTP,
JDBC,和JNDI测试时使用的所有文件。
如果你想执行 JDBC 测试,你当然需要从厂商得到适当的 JDBC 驱动。JMeter 没有提供任何 JDBC 驱动。
其它你可能需要下载的软件:
BeanShell
JMeter 需要运行环境匹配的最小需求。 2.1.1 Java 版本 JMeter 需要一个完整适当的 JVM 1.3 或更高的版本. 我们现在尽力与 JVM 1.3 保持兼容,然而 JMeter 在 1.4 或者更高运行的会最好。 因为 JMeter 仅使用 Java 标准 API, 请不要把因为 JRE 实现版本而无法运行 JMeter 的 bug 报告提交。
01Jmeter简易使用手册(UI部分)
JMeter简易使用手册UI部分一、环境准备JMeter的使用需要JDK环境的支持,本手册使用的JMeter版本为2.13,此版本需要JDK1.6以上的支持。
安装完成JDK后,对JMeter进行解压后,进入bin目录下双击jmeter.bat即可正常使用。
二、GUI界面预览双击jmeter.bat 后,进入主界面,如图:图11、认识测试计划(Test Plan)图22、认识线程组图32.1 setup thread group一种特殊类型的ThreadGroup的,可用于执行预测试操作。
这些线程的行为完全像一个正常的线程组元件。
不同的是,这些类型的线程执行测试前进行定期线程组的执行。
setUp Thread Group类似于lr的init.可用于执行预测试操作。
2.2 teardown thread group.一种特殊类型的ThreadGroup的,可用于执行测试后动作。
这些线程的行为完全像一个正常的线程组元件。
不同的是,这些类型的线程执行测试结束后执行定期的线程组。
tearDown Thread Group类似于lr的end.可用于执行测试后动作。
2.3 thread group(线程组).这个就是我们通常添加运行的线程。
通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。
线程组中包含的线程数量在测试执行过程中是不会发生改变的。
常用的为线程组(Thread Group),介绍图4图52.3.1、认识测试片段(Test Fragment)测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。
它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。
图62.3.2认识取样器(Sampler)取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如HTTP Request Sampler 、FTP Request Sampler 、TCP Request Sampler 、JDBC Request Sampler 等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。
Jmeter中文手册
安裝JDK:JAVA的環境變數設置使用滑鼠右擊“我的電腦”->屬性->高級->環境變數系統變數->新建->變數名:JAVA_HOME 變數值:d:\jdk系統變數->編輯->變數名:Path 在變數值的最前面加上:%JAVA_HOME%\bin;系統變數->新建->變數名:CLASSPATH 變數值:.;安裝TomcatCATALINA_HOME=d: \tomcatUser Manual用戶手冊1 介紹Apache JMeter 是100%純JAVA桌面應用程式, 被設計為用於測試CS結構的軟體.同時也可以用來測試靜態和動態資源的性能, 例如:靜態檔, Java Servlets, CGI Scripts, Java Object, 資料庫和FTP伺服器等等. JMeter可用于類比大量負載來測試一台伺服器,網路或者物件的健壯性或者分析不同負載下的整體性能.同時, JMeter可以説明你對你的應用程式進行回歸測試. 通過你創建的測試腳本和assertions來驗證你的程式返回了所期待的值. 為了更高的適應性, JMeter允許你使用常規運算式來創建這些assertions.2 開始2.1 安裝下載安裝最新的版本, 將會包含所有你需要建立和運行Web, FTP, JDBC和JNDI測試的檔. 如果你想進行JDBC測試, 你需要使用合適的JDBC driver. JMeter中不包含JDBC drivers.其他可能需要下載的軟體:●Bean Shell●Java Activation Framework – needed for Java Mail●Java Mail – needed for mail visualiser and SOAP test●JMS – for JMS samples●General Java Kit接下來一步, 就是流覽”建立測試計畫”一章來熟悉JMeter的基本操作, 例如:添加和刪除元素. 最後,流覽適當的章節來學習如何建立不同種類的測試計畫. 例如, 如果你對Web 應用程式的測試比較感興趣, 就流覽”建立一個Web測試計畫”章節. 其他種類的測試計畫建立的章節包括:JDBC, FTP和JNDI.一旦你熟悉了建立和運行JMeter測試計畫, 就可以開始熟悉各種配置參數, 例如: timers, listeners, assertions和其他的參數, 來幫助你更好地控制你地測試計畫.2.2 系統要求JMeter 1.8 以上的版本需要JDK1.4以上的版本支持運行.JMeter可以運行在如下作業系統上: Unix, Windows和Open VMS.2.3 可選項目如果你打算進行JMeter開發或者使用Sun的Java標準擴展包,你需要如下所列的可選包:2.3.1 Java Compiler需要1.4以上的JDK版本2.3.2 SAX XML ParserJMeter默認使用Apache的Xerces XML parser. 如果你想使用一個不同的XML parser, 將協力廠商的parser包放入JMeter的classpath中,然後使用設置的parser包的全名更新檔jmeter.properties2.3.3 Email SupportJMeter擁有有限的郵件功能來發送測試結果到指定郵箱中. 應用郵箱功能,需要將Sun的JavaMail包放入JMeter的classpath中並啟動.2.3.4 SSL Encryption為使用HTTPS測試web伺服器, JMeter需要設立SSL機制. 將所需要的SSL類包放入JMeter 的classpath中, 更新jmeter.properties來註冊SSL Provider.可以使用SSL Manager 用來管理這些證書.注意: 在JDK 1.4以上版本, SSL已經作為標準庫加入.2.2.5 JDBC Driver你需要將你的資料庫供應商提供的JDBC drivers添加到classpath中來進行JDBC測試.2.2.6 Apache SOAPApache SOAP測試需要mail. jar和activation.jar. 只需要將下載的兩個jar檔複製到JMeter下的lib目錄中, JMeter會自動的識別和使用它們.2.3 運行運行JMeter, 使用jmeter.bat (windows) 或 jmeter (UNIX).2.3.1 JMeter的classpathJMeter自動在/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 –H yahoo –P 8080 –u test –a password2.3.3 非GUI模式對於那些非交互的測試, 你可以使用非GUI的模式運行JMeter. 使用如下命令:-n 指定的JMeter運行在non-GUI模式下-t 包含測試計畫的JMX檔的名稱-l 用於記錄簡單結果的JTL檔案名稱.-r 運行所有的在jmeter.properties中指定的遠端主機.(或在命令列中提供的覆蓋屬性提供的遠端主機名稱.也可以同時提供防火牆或者代理伺服器的資訊-H 伺服器名或IP地址-P 埠號示例:jmeter –n –t my.jmx –l log.jtl –H yahoo –P 88002.3.4 伺服器模式為了對分散式測試, 可以運行在伺服器模式下, 然後通過GUI來控制每個伺服器.運行jmeter-server/jmeter-server.bat, 附加下列可選項:-H 代理伺服器的hostname或IP地址-P 埠號示例:jmeter-server –H yahoo –P 80002.3.5 通過命令列來重載PropertiesJava system properties, JMeter properties和logging properties 能夠直接通過命令列來直接重載而不用修改jmeter.properties文件. 使用以下參數項:-D[prop name]=[value] 定義一個java system property值-J[prop name]=[value] 重載一個JMeter property-L[category]=[priority] 重載一個logging setting, 設置一個指定的類別名給指定的優先順序別-L標誌位元可以不指定category,將其設為root級別示例:jmeter –Duser.dir=/home/mstover/jmeter_stuff \ -Jremote_hosts=127.0.0.1 –Ljmeter.engine=DEBUGjmeter –LDEBUG注意: 命令列輸入的properties在啟動時先處理, 但是晚于logging system的建立. 所以嘗試使用-J標誌去更新log_level或者log_file的properties將沒有任何效果.2.3.6 Logging和error信息如果JMeter檢查到一個錯誤, 一個資訊就被寫道log檔中. Log文件的名字是在jmeter.properties檔中定義的. 預設值位jmeter.log, 在JMeter的開始目錄中可以看到, 例如 bin目錄中.除了記錄錯誤資訊, jmeter.log檔中同時記錄了一些測試運行的資訊. 例如:10/17/2003 12:19:20 PM INFO - jmeter.JMeter: Version 1.9.2003100210/17/2003 12:19:45 PM INFO - jmeter.gui.action.Load: Loading file:c:\mytestfiles\BSH.jmx10/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.StandardJMeterEngine: Continue on error10/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檔有助於定位錯誤出現的原因,因為它並未打斷測試來顯示一個error視窗.2.4 配置JMeter如果你想修改JMeter運行使用的properties,你可以通過兩種方式:修改bin目錄中的檔jmeter.properties或者創建你自己的properties檔使用命令列來指定該檔.Parameters3 建立測試計畫一個測試計畫描述了一系列JMeter在運行中要執行的步驟. 一個完整的測試計畫包含一個或多個Thread Groups, logic controllers, sample generating controllers, listeners, timers, assertions和configuration elements.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.5 Scoping RulesJMeter測試樹中包含的elements是分級和有次序的.一些elements在測試中有嚴格的等級要求(Listeners, Config Elements, Post-Processors, Pre-Processors, Assertions, Timers), 而其他一些有primarily ordered的要求(controllers, samplers). 當你創建測試計畫時, 你需要建立一個有次序的sample請求(通過sampler), 這些反映了一組需要執行的測試步驟. 這些請求經常在有序的controllers中組織.例圖1請求的次序將為: one, two, three, four.有些controllers會影響他們sub-elements, 你可以在component reference 中查看這些.一些其他的elements是有級別的. 例如, Assertion在測試樹中是有級別的.如果他的父親節點是一個request,那麼它將僅僅影響該request. 如果父節點是一個controller, 那麼它將影響該controller的所有後代的請求. 例如:Assertion #1僅僅應用到Request One上. 而Assertion#2應用到Request Two和Three 上.另外一個關於Timers的示例:在這個例子中, request的名字反映了他們在測試中應該執行的次序.Timer#1將應用到Request Two, Three和Four上(注意對於分等級的elements如何排序毫不相關). Aserrtion#1將僅僅應用到Request Three上. Timer#2將影響所有的請求.如果你想想任何一個request通過樹的路徑被傳遞, 到它的父節點,在到它的父節點的父節點, 以此類推, 在每一級的父節點上集合所有的configuration elements, 那麼你就知道它是如何工作的了.注意:對於Configuration elements中的 Header Manager, Cookie Manager和Authorization manager來說, 與其他的Configuration Default elements不同. Configuration Default elements被整合成一個Sampler訪問的集合.而Manager的設置不會被整合.如果超過一個的Manger在Sampler的範圍中,只有一個Manager被使用,但是目前還無法判斷那個被使用.4 測試計畫的elements測試計畫物件現在擁有了一個新的checkbox選項, 叫做”功能測試”. 如果選擇,JMeter 將記錄所有server為每個sample返回的值. 如果你已經在測試listeners中選定了一個檔, 那麼這些資料將被寫入到檔中. 這個有助於你通過一個小型的測試來檢驗JMeter是否配置正確, 而你的伺服器返回正確的結果. 值得注意的是這個檔的大小將增長的很快使得JMeter的性能降低. 這個選項在做壓力測試時需要關閉掉(預設為關閉).如果你不將資料寫入檔中,那麼這個選項沒有任何不同.4.1 Thread GroupThread Group elements 是任何一個測試計畫的開始點. 所有的測試計畫中的elements都要在一個Thread Group中. 如名字顯示那樣, thread group element控制了一組執行緒, JMeter使用這些執行緒來執行你的測試. 你可以做如下操作來控制thread group:●設置執行緒的數量●設置ramp-up週期●設置測試執行的次數每一個執行緒都會完全和獨立的執行測試計畫而不影響其他執行緒. 多執行緒可以用於類比到你的伺服器程式的併發連接.Ramp-up period 告訴JMeter需要多長時間來”ramp-up”去裝載全部的執行緒. 如果10個執行緒被使用, 而ramp-up period為100秒, 那麼JMeter會花100秒來使得所有的10個執行緒運行. 每個執行緒將在上個執行緒開始後10秒開始. 又如, 如果有30個執行緒而ramp-up為120秒.那麼每個執行緒在延遲4秒後啟動.延遲時間=ramp-up period時間數/執行緒數默認的,一個thread group被設置為不限定的迴圈. 你可以設置thread group迴圈的次數.如果設置為一次, 那麼JMeter將執行測試一次然後停止.Version 1.9 將允許你預定時間去運行測試. 選定Scheduler的checkbox, 你就可以設定時間.4.2 ControllersJMeter有兩種controller: Samplers和Logical ControllersSamplers告知JMeter發送請求到伺服器. 例如, 如果你想JMeter發送一個HTTP請求, 就添加一個HTTP Request Sampler. 當然你也可以定制一個請求, 在Sampler中添加一個或多個 Configuration Elements.Logical Controllers使你可以定制JMeter發送請求的邏輯. 例如, 你可以添加一個Interleave Logic Controller來控制交替使用兩個HTTP Request Samplers. 同樣, 一個特定的Logic controller, 作為Modification Manager, 可以讓你修改請求的結果.4.2.1 SamplersSampler 告知JMeter發送請求到server端. JMeter現在有如下的samplers:●FTP Request●HTTP Request●JDBC Request●Java Object Request●LDAP Request●SOAP/XML-RPC Request●Web Service (SOAP) Request (Alpha Code)每個sampler都有一些可以設置的properties. 你也可以在一個sampler中添加Configuration Elements來做更多的設置. 當然, 值得注意的是JMeter按照request在tree中添加的次序來發送請求.如果你想同時發送多個併發的同一種類的request, 例如HTTP request, 到同樣一台伺服器. 可以考慮使用一個Defaults Configuration Element. 每個Controller擁有一個或多個預設元素.當然不要忘記添加一個Listener到你的Thread Group中來察看和存儲你的測試結果.如果你對JMeter對你的request返回的response進行簡單的校驗很感興趣, 你可以在Request Controller中添加一個Assertion. 例如, 在一個web程式的壓力測試中, 伺服器可能會返回多個成功的”HTTP Response”, 但是頁面也許包含了一些錯誤或者丟失的部分. 你可以添加assertions來檢查特定的HTML標籤,常見的錯誤字串,等等諸如此類的資料. JMeter允許你使用常規運算式來創建這些assertions.4.2.2 Logic ControllersLogic Controller使得用戶可以定制JMeter發送請求的時機.Logic Controllers可以擁有如下的任何一個作為子elements: Samplers(requests), Configuration Element和其他的Logic Controllers. Logic Controllers可以改變子elements的請求次序. 他們可以自己修改requests, 使得JMeter可以重複發送請求等等.為了便於理解Logic Controllers在測試計畫中所起的作用, 舉例如下:●Test Plan⏹Thread Group◆Once Only Controller●Logic Request (an HTTP request)◆Load Search Page (HTTP sampler)◆Interleave Controller●Search “A” (HTTP Sampler)●Search “B” (HTTP Sampler)●HTTP default request (Configuration Element)◆HTTP default request (Configuration Element)◆Cookie Manager (Configuration Element)首先表明了login請求只會在第一次運行時執行. 其餘的請求將自動跳過它. 達到這個效果的原因就是因為Once Only Controller的影響左右.在login之後, 下一個Sampler載入了search page (想像一下, 一個在用戶登錄後就轉入search頁面來做搜索的web程式). 這個僅僅是一個簡單的請求, 並未通過任何Logic Controller的篩選過程.在search頁面載入後, 我們想做一些搜索. 實際上, 我們要做兩個不同的搜索. 然而, 我們想在每個獨立的搜索中重新載入search頁面. 我們可以用四個簡單的HTTP request elements來達到目的(載入search頁面,搜索”A”,載入search頁面,搜索”B”). 而實際上, 我們使用了另一個方法, 我們使用Interleave Controller, 它將每次運行一個完整的測試只使用一個子element的request. 而且能夠保持這些子elements的次序來運行.注意:HTTP Request Defaults是屬於Interleave Controller的. 想像一下”search A”和”Search B”分享同一個”PATH”信息(一個指定的HTTP請求包括domain, port, method, protocol, path和arguments等, 還有其他額外的資訊). 這導致: 兩者都是search的請求, 點擊同一個後臺搜尋引擎. 與其給兩者配置相同PATH資訊,不如將資訊抽象出來給一個Configuration Element.當Interleave Controller傳遞”Search A”和”Search B”的請求時, 將自動使用HTTP Default Request Configuration Element的值來取代空白的PATH域. 所以, 我們將這些請求的PATH域空置, 然後將這些資訊放入到Configuration Element中.樹中接下來的element是另外一個HTTP Default Request, 這次是給Thread Group自己使用的. Thread Group擁有一個內置的Logic Controller, 因此, 它象上面的介紹的那樣一樣,來使用這個Configuration Element. 它將填入到任何一個通過的Request的空白中. 當你做web測試時, 這是非常有用的. 你可以將所有的HTTP Sampler elements的DOMAIN 域空白, 然後使用Thread Group中添加的HTTP Default Request的資訊補充這些空白域. 這樣, 你可以僅僅改變一個域就能將整個測試計畫應用到另外的server上. 否則你需要一個一個更改Sampler.最後一個element是HTTP Cookie Manager. 所有的web測試中都應該添加該element, 否則JMeter將忽略所有的cookie. 在Thread Group級添加這個元素,可以保證所有HTTP request將共用同樣的一個cookie.Logic Controller可以被組合起來從而獲得多種不同的結果.4.3 ListenersListeners提供了獲取在JMeter運行過程中搜集到的資訊的訪問方式. 最簡單的Listener, Graph Results Listener圖示出了回應時間. Listeners提供了一種圖型化的方式來查看JMeter運行過程中產生的資料.另外, Listeners能夠直接將搜集的到資料存入到檔中以備後用. 任何一個listener都擁有一個設置該檔存儲位址的域.Listener能夠加到測試中的任何位置. 他們將僅僅收集同級別和所有低級別的elements產生的資料.4.4 Timers默認的,JMeter執行緒發送requests時之間沒有任何停頓. 我們建議你指定一個延遲時間. 這可以通過添加一個有效的Timer到你的Thread Group中實現. 如果你沒有添加一個延遲時間, JMeter可能會在極短時間內發送大量的請求而引起server崩潰.Timer可以使得JMeter在執行緒發送每個請求時有一個延遲. 如果你添加了多個timer到一個Thread Group中時, JMeter將使用累計的延遲時間.4.5 AssertionsAssertions 允許你對在測試中從server端返回的回復中驗證某些資料. 使用assertion, 你可以實際地測試你的程式返回的值是否是期望值.例如, 你可以檢驗回復字串中包含一些特殊的文本. 你指定的文本可以是一個Perl-style 的常規運算式, 然後指定回復中是否包含該文本, 或者整個回復都應該相符合.你可以給任何一個Sampler添加一個assertion. 例如, 你可以添加一個assertion到一個HTTP Request來檢查文本”yahoo”. JMeter就會在返回的回復中察看該文本. 如果JMeter 不能發現該文本,那麼將標誌該請求是個失敗的請求.為了查看assertion的結果, 你需要添加一個Assertion Listener到Thread Group中.4.6 Configuration ElementsConfiguration Element與Sampler緊密聯繫在一起工作. 儘管它不能發送請求, 但是它可以被添加到或者去修改請求(除了HTTP Proxy Server)之外.Configuration Element只能被所在的tree branch訪問. 例如, 你在一個Simple Logic Controller中設置了一個HTTP Cookie Manager, 那麼這個Cookie Manager將只能被設置在Simple Logic Controller中的HTTP Request Controllers訪問. 如下圖中所示, Cookie Manager 能夠被HTTP request “Web Page1”和”Web Page2”訪問, 但是不能被”Web Page3”訪問.並且, 一個tree branch中的configuration element 將擁有更高的優先順序, 與同一個parent branch 中的同樣的元素相比. 例如, 我們定義了兩個 HTTP Request Defaults elements, “Web Defaults 1”和”Web Defaults 2”. 因為我們將”Web Defaults 1”放入到一個Loop Controller中,所以只有”Web Page 2”能訪問它. 而其他的HTTP requests 只能使用我們在”Thread Group”(所有其他branch的”parent”)中設置的”Web Defaults 2”.4.7 Pre-Processor ElementsPre-Processor在Sampler Request被創建前執行一些操作. 如果一個Pre-Processor被附加到一個Sampler element上, 那麼它將先於Sampler Element運行. Pre-Processor最主要用於在Sampler運行前修改一些設置, 或者更新一些無法從response文本中獲取的變數.4.8 Post-Processor ElementsPost-Processor在Sampler Request被創建後執行一些操作. 如果一個Post-Processor被附加到一個Sampler element上, 那麼將緊接著sampler element運行後運行.Post-Processor主要用於處理回復資料, 常常用來從其中獲取某些值.5 建立一個web測試計畫在本章中, 你將學習到如何創建一個基本的測試計畫用來測試一個web網站. 你創立5個用戶向Jakarta網站的兩個頁面發送請求. 同時,你將設置這些用戶運行他們的測試兩遍. 所以, 總共的request數是: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 你要設置的使用者的數目, 發送請求的頻率和請求的次數.選擇測試計畫, 點擊右鍵, 選擇添加Thread Group. 這時你就應該在Test Plan下看到Thread Group element了. 如果你沒有看到, 那就點擊Test Plan展開樹.然後, 你需要修改那些預設的properties. 選擇樹中的Thread Group element, 在JMeter 左側的視窗中應該顯示出Thread Group的Control Panel.第一步, 給我們的Thread Group 添加一個更詳細的名稱. 在名字域中, 輸入Jakarta Users.然後增加使用者的數目到5 (調用的執行緒數).在下一個域中, Ramp-Up Period, 使用預設值0秒. 這個properties告訴JMeter兩個User 開始發送請求之間的延遲時間. 例如,你輸入5秒, JMeter將在5秒後啟動所有的用戶. 所以, 我們有五個用戶和5秒的Ramp-up period, 那麼兩個用戶之間開始時間的延遲時1秒.(5 user/5=1).如果值為0, 那麼JMeter將立刻開始你所有的用戶操作.最後,清除”Forever”的checkbox, 輸入2在Loop Count域中. 這個property告訴JMeter 要重複運行你的測試幾次. 如果你輸入的迴圈值為1, 那麼JMeter將只運行一次你的測試. 如果要JMeter不停運行你的測試,選擇Forever.在大部分程式中, 你不得不手工方式來更新你在控制台中的更改. 然而, 在JMeter中, 控制台將自動的接受你的更改. 例如, 你改變了一個element的名稱, 樹將自動更新為最新的文本在你離開控制台後(例如,選擇了另一個element).5.2 添加Default HTTP Request Properties現在我們已經定義了我們的用戶, 是時間來定義他們要執行的任務了. 在這節, 你將指定你的HTTP 請求的默認設置. 然後, 在5.3中, 你將添加HTTP Request elements來使用你制定的預設值.選擇你的Jakarta User element.右擊選擇添加Config Element中的HTTP Request Defaults. 然後選擇這個新的元素查看他的控制台.象大多數的JMeter元素一樣, HTTP Request Default的控制台擁有一個可修改的名稱域. 在本例中,使用預設值.跳到下個域, Web Server’s Name/IP. 在本例中, 所有的測試用例將發送到同一個web伺服器上去: . 將這個功能變數名稱輸入到該欄位中. 這是我們唯一指定的預設值, 所有留下其他的域為空白值.注意:HTTP Request Defaults elements 不會告訴JMeter去發送HTTP請求. 它只是簡單的定義了HTTP request elements會使用到的預設值.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在我們的測試計畫中, 我們需要創建兩個HTTP Requests. 第一個是訪問Jakarta的主頁, (). 第二個是訪問/site/guidelines.html.右擊添加第一個HTTP Request. 然後修改該元素的properties1.將名字改為 HOME Page2.設置路徑為“/”. 注意的是你不需要設置server的名稱, 因為你再HTTP RequestDefaults element中已經設置了.緊接著添加第二個 HTTP request.5.5 添加一個Listener來查看和存儲測試結果最後一個要在測試計畫中添加的元素是Listener. 這個元素用來存儲所有的測試結果到一個檔和提供一個資料的視圖模式.添加Graph Results listener到Thread Group中. 然後指定一個路徑和檔案名用於存儲測試結果. 你可以輸入, 也可以通過browse按鍵來選擇.5.6 保存測試計畫經管這不是一個必須的步驟, 但是我們建議你將測試計畫在運行前存入一個檔.5.7 運行測試計畫在Run功能表中, 選擇運行.一旦JMeter完成了你的測試計畫, 選擇停止.如果你選擇將listener中的測試結果存儲到一個檔中, 那麼你將擁有這個可以被任何流覽器查看的檔. 不同的流覽器顯示不同的風格.6 建立一個高級的web測試計畫本節中, 你將學習如何建立一個更高級的測試計畫來測試web網站6.1 使用URL重寫技術處理用戶的session如果你的web程式使用URL重寫而不是cookie來保存session的資訊, 那麼你需要做一些額外的工作來測試你的網站.為了正確的進行URL回寫, JMeter需要過濾從server端獲的HTML來獲得唯一的session ID.使用合適HTTP URL Re-Writing Modifier來達到此目的. 將你的Session ID作為參數寫入到modifier中, 它將自動添加session到每一個request中. 如果request中已經有了該值, 將直接覆蓋.示例:上圖中顯示了一個使用了URL Re-writing的測試計畫. 注意modifier被附加在Thread Group上, 這樣就保證了所有執行緒組的請求都會被應用到.在上圖中, 我們看到的是URL Re-Writing modifier的GUI. 僅僅只有一個域給用戶用於設置session ID參數的名字.6.2 使用Header ManagerHTTP Header Manager 可以使你定制JMeter發送的請求的報頭. 象HTTP cookie Manager 一樣, 應該添加到合適的級別上. 除非出於某種原因你希望你測試不同的request發送不同的報頭.7 建立一個database測試計畫本節中, 你將學習如果建立一個測試資料庫的基本測試計畫.你將創建一個有10個用戶發送2個SQL請求到資料庫server的測試. 同時, 你將告訴用戶運行他們的測試三遍. 所以,總共的請求次數是:10 users * 2 requests * 3 times = 60 JDBC requests. 為了創建測試計畫, 你將使用元素: Thread Group, JDBC Request 和 Graph Results.7.1 添加用戶每個JMeter測試計畫創建的第一步都是添加Thread Group 元素. Thread Group用於設置發送請求的使用者數,頻率和請求總數.如下圖, 設置10個執行緒代表10個用戶,用戶的延遲時間為0,一共迴圈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元素來監視和存儲測試結果如下圖所示, 添加了一個Graph 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來查看和存儲測試結果最後, 我們添加了一個Spline Visualizer listener用於觀察和存儲測試結果.8.5 保存測試計畫8.6 運行測試計畫9 建立一個LDAP測試計畫9.1 添加用戶創建一個Thread Group用於添加用戶和設置請求次數和頻率.9.2 添加一個登錄控制元素可以添加一個Config Element的Login Config Element用於用戶登錄控制.9.3 添加一個LDAP Request Defaults可以添加一個config element中的LDAP Request Defaults用於控制一些共用預設值.9.4 添加LDAP Request添加的LDAP Request通過選擇不同的測試配置來完成四種操作: 添加,刪除,修改和查詢. 例如, 修改:9.5 添加一個Listener來查看和保存測試結果添加了一個View Results in Table的listener9.6 保存測試用例9.7 運行測試用例10 創建一個Web Service測試計畫對於Web Service Sampler, 當前是使用Apache Soap driver. 需要activation.jar和mail.jar.由於license的限制, JMeter中並未包含這些jar檔.如果sampler顯示從web service獲得一個error. 需要同時檢查SOAP的資訊來確認格式是正確的. 特別的要確認xmlns的attributes要和WSDL完全一致. 如果xml的namespace不同, 那麼web service將很可能返回一個錯誤. Xmethods中包括了一個公共service的列表.10.1 添加用戶10.2 添加web service 請求10.3 添加listener用於查看和存儲測試結果.10.4 保存測試計畫10.5 運行測試計畫11 創建JMS Point-to-Point測試計畫需要如下jar檔的支援activation.jaractiveio-1.0-SNAPSHOT.jaractivemq-3.0.jaractivemq-core-3.0.jarcommons-logging-1.0.3.jarconcurrent-1.3.4.jargeronimo-spec-j2ee-jacc-1.0-rc4.jargeronimo-spec-j2ee-management-1.0-rc4.jargeronimo-spec-jms-1.1-rc4.jargeronimo-spec-jta-1.0.1B-rc4.jar。
转载JMeter中文使用手册(终审稿)
JMeter 自动从在它的/lib 和 /lib/ext目录中的jar包发现类。如果你开发新的 JMeter 组件,你可以压缩它们成jar包并拷贝到 JMeter 的 /lib/ext 目录。JMeter 将会自导发现在这里的任何jar包的JMeter 组件。如果你不想把扩展jar包放到lib/ext 目录,可以在jmeter.properties中定义search_paths属性。不要使用lib/ext 给那些有用的jar包;它仅仅是存放 JMeter 组件。
如果你想执行JDBC测试,你当然需要从厂商得到适当的JDBC驱动。JMeter没有提供任何JDBC驱动。
其它你可能需要下载的软件:
BeanShell
Java Activation Framework - JavaMail需要
Java Mail - mail 显示 and SOAP 测试需要
JMS - JMS 取样器
这个脚本也允许我们指定可选的防火墙/代理服务器信息:
-H [代理服务器主机名或者ip地址]
-P [代理服务器端口]
例如
2.4.4 服务器模式
为了分布测试 ,在服务器模式运行JMeter,并且通过用户界面控制每一台服务器。
jmeter-server/jmeter-server.bat 脚本使用适当的classpath为你开始远程注册。如果失败,参见关于JMeter服务器启动细节。
2.2.1 Java 编译器
如果你想编译JMeter源代码或者开发JMeter插件,你将需要一个完整的适当的JDK1.3或者更高。
2.2.2 SAX XML解析器
JMeter 使用 Apache's Xerces XML 解析器你可以选择告诉JMeter使用一个不同的XML 解析器。 这样做,把第三方的解析器的类包包含在JMeter的classpath 中, 并更新 jmeter.properties 文件里的解析器实现的全类名。
jmeter使用说明手册
Jmeter使用说明手册1.Jmeter的工作原理工作原理Jmeter作为web服务器与客户端之间的代理网关,它通过代理方式截获客户端和服务器之间交互的数据流,这样服务器和客户端都以为是在一个真实运行环境中。
2. 环境安装部署2.1 安装jdk注意事项JMeter3.2 以上的版本需要JDK1.8以上的版本支持运行。
JMeter可以运行在如下操作系统上: Unix,Windows和Open VMS;JAVA的环境变量设置a. 使用鼠标右击“我的电脑”->属性->高级->环境变量b. 系统变量->新建->变量名:JAVA_HOME 变量值:d:\jdkc. 系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;d. 系统变量->新建->变量名:CLASSPATH 变量值:e:运行->cmd->java version;Jdk下载地址:/technetwork/java/javase/downloads/jdk8-downloads-2133 151.html2.2 安装及运行jmeter;解压zip/tar文件到你想安装JMeter的目录;运行解压后的bin目录下的 jmeter.bat;如图所示:2.2.1jmeter 目录介绍a.bin目录:可执行的目录1).jmeter.bat:windows的启动文件2).jmeter.log:日志文件3).jmeter.sh:linux的启动文件4).jmeter.properties:系统配置文件5).jmeter-server.bat :windows分布式测试要用到的服务器配置6).jmeter-serve:linux分布式要用到的服务器配置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线程介绍---Test plan(测试计划)---------setup threads group(环境初始化)---------thread group---------thread group...---------tear down group(环境恢复)Test plan:用来描述一个自动化测试,本次需要执行的测试范围,类似testlink上的测试计划。
JMETER接口测试用户手册
JMETER接口测试用户操作手册1 第1页共43目录第一章.概述 (4)1.1编写目的 (4)1.2 JMETER 基本介绍以及使用原因 (4)第二章JMETER安装说明 (5)2.1.安装说明 (5)第三章接口测试环境配置 (9)3.1 添加一个线程组 (9)3.2 添加HTTP 请求默认值 (10)3.3 添加结果监听器 (11)3.4 添加http 请求 (12)3.5 添加响应断言 (13)3.6 添加断言结果 (13)第四章配置请求并执行测试 (14)4.1 配置接口地址信息 (14)4.2 添加业务参数 (15)4.3 添加断言 (16)4.4 执行测试 (17)4.5 同时测试多个接口 (19)4.6 脚本导出操作 (19)第五章接口测试与数据驱动 (21)5.1简介 (21)5.2 数据驱动与jmeter接口测试 (21)第六章Jmeter接口测试与持续集成 (25)6.1 简介 (25)6.2 安装ANT (25)6.3 ANT中配置Jmeter (26)6.4 配置jenkins (35)第七章附录 (39)7.1 接口设计文档信息示例 (39)第一章.概述1.1编写目的本文档用于主要用于介绍Jmeter工具安装及其做接口测试的基本操作。
1.2 JMETER 基本介绍以及使用原因Jmeter 是Apache 组织开发的基于JA V A 的压力测试工具,是目前业内主流的开源压力测试工具及HTTP接口自动化测试工具。
我们选择Jmeter做接口测试的原因,主要基于以下几点:(1)Jmeter是市场上主流的开源接口测试工具,即它是免费的(2)Jmeter可以调用不同类型的网络接口,http、https、ftp等等(3)具备PostMan、fiddler等接口测试工具不具备的自动化测试能力(4)Jmeter安装简单,也可以说是免安装的,解压即可用(5)可以与其他工具搭配,构建持续集成测试环境第一章JMETER安装说明2.1.安装说明2.1.1、下载◆首先我们需要打开Apache官网:https:///◆官网主页拉到最底端,找到jmeter,点击进入jmeter主页◆进入下载页面,点击download releases找到最新的jmeter.zip包,下载即可,注意:如下图所示,我们需要先安装jdk1.7以上的版本。
jmeter使用手册
性能测试工具-Jmeter修订记录日期修订版本130317 0.1目录1.JMETER的介绍 (5)2.整体概述 (5)2.1.名词解释 (5)2.2.工作原理 (6)2.3.入门知识 (6)3.JMETER的部署 (8)3.1.JM ETER下载 (8)3.2.JM ETER安装 (8)4.测试场景的应用 (9)4.1.WS服务 (9)4.2.前台页面 (11)4.3.TR服务(TODO) (13)5.基础讲解 (13)5.1.线程组 (14)5.2.取样器 (16)4.2.1Http请求 (16)4.2.2Jdbc请求 (19)4.2.3WebService请求 (22)4.2.4Java请求(todo) (23)5.3.逻辑控制器 (23)4.3.1ForEach控制器 (23)4.3.2Runtime控制器 (24)4.3.3Switch控制器 (24)4.3.4While控制器 (25)4.3.5交替控制器 (25)4.3.6吞吐量控制器 (26)4.3.7如果(if)控制器 (26)4.3.8模块控制器 (27)4.3.9Include控制器 (27)4.3.10循环控制器 (28)4.3.11简单控制器 (28)4.3.12仅一次控制器 (29)4.3.13随机控制器 (29)4.3.14随机顺序控制器 (29)5.4.定时器 (29)4.4.1Constant Throughput Timer (29)4.4.2Synchronizing Timer (32)4.4.3固定定时器 (32)4.4.4高斯随机定时器 (32)5.5.前置处理器 (32)4.5.1用户变量 (33)4.5.2JDBC PreProcessor (33)4.5.3HTTP URL重写修饰符(todo) (35)5.6.后置处理器 (35)4.6.1正则表达式提取器 (35)4.6.2XPath Extractor (38)4.6.3Result status Action Handler (39)5.7.断言 (39)4.7.1响应断言 (40)4.7.2XPath断言 (41)4.7.3XML断言 (41)4.7.4Size断言 (41)4.7.5断言持续时间 (42)5.8.监听器 (42)4.8.1图形结果 (44)4.8.2查看结果树 (44)4.8.3Aggregate Report (46)4.8.4Aggregate Graph (47)4.8.5响应时间图 (48)4.8.6Summary Report (49)4.8.7用表格查看结果 (49)5.9.配置元件 (50)4.9.1CSV Data Set Config (50)4.9.2HTTP Cookie管理器 (51)4.9.3HTTP信息头管理器 (52)4.9.4HTTP请求默认值 (53)4.9.5Java请求默认值 (55)4.9.6JDBC Connection Configuration (55)4.9.7Random Variable (56)4.9.8TCP 取样器配置 (57)4.9.9用户定义的变量(UDV) (57)4.9.10计数器 (58)6.操作技巧 (59)6.1.工作台-构造WEB报文 (59)6.2.构造SOAP报文 (61)6.3.常用函数 (62)6.4.插件开发(TODO) (64)7.测试工具的简单对比 (64)1.JMeter的介绍Apache JMeter是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量。
jmeter使用手册
性能测试工具-Jmeter修订记录日期修订版本130317 0.1目录1.JMETER的介绍 (5)2.整体概述 (5)2.1.名词解释 (5)2.2.工作原理 (6)2.3.入门知识 (6)3.JMETER的部署 (8)3.1.JM ETER下载 (8)3.2.JM ETER安装 (8)4.测试场景的应用 (9)4.1.WS服务 (9)4.2.前台页面 (11)4.3.TR服务(TODO) (13)5.基础讲解 (13)5.1.线程组 (14)5.2.取样器 (16)4.2.1Http请求 (16)4.2.2Jdbc请求 (19)4.2.3WebService请求 (22)4.2.4Java请求(todo) (23)5.3.逻辑控制器 (23)4.3.1ForEach控制器 (23)4.3.2Runtime控制器 (24)4.3.3Switch控制器 (24)4.3.4While控制器 (25)4.3.5交替控制器 (25)4.3.6吞吐量控制器 (26)4.3.7如果(if)控制器 (26)4.3.8模块控制器 (27)4.3.9Include控制器 (27)4.3.10循环控制器 (28)4.3.11简单控制器 (28)4.3.12仅一次控制器 (29)4.3.13随机控制器 (29)4.3.14随机顺序控制器 (29)5.4.定时器 (29)4.4.1Constant Throughput Timer (29)4.4.2Synchronizing Timer (32)4.4.3固定定时器 (32)4.4.4高斯随机定时器 (32)5.5.前置处理器 (32)4.5.1用户变量 (33)4.5.2JDBC PreProcessor (33)4.5.3HTTP URL重写修饰符(todo) (35)5.6.后置处理器 (35)4.6.1正则表达式提取器 (35)4.6.2XPath Extractor (38)4.6.3Result status Action Handler (39)5.7.断言 (39)4.7.1响应断言 (40)4.7.2XPath断言 (41)4.7.3XML断言 (41)4.7.4Size断言 (41)4.7.5断言持续时间 (42)5.8.监听器 (42)4.8.1图形结果 (44)4.8.2查看结果树 (44)4.8.3Aggregate Report (46)4.8.4Aggregate Graph (47)4.8.5响应时间图 (48)4.8.6Summary Report (49)4.8.7用表格查看结果 (49)5.9.配置元件 (50)4.9.1CSV Data Set Config (50)4.9.2HTTP Cookie管理器 (51)4.9.3HTTP信息头管理器 (52)4.9.4HTTP请求默认值 (53)4.9.5Java请求默认值 (55)4.9.6JDBC Connection Configuration (55)4.9.7Random Variable (56)4.9.8TCP 取样器配置 (57)4.9.9用户定义的变量(UDV) (57)4.9.10计数器 (58)6.操作技巧 (59)6.1.工作台-构造WEB报文 (59)6.2.构造SOAP报文 (61)6.3.常用函数 (62)6.4.插件开发(TODO) (64)7.测试工具的简单对比 (64)1.JMeter的介绍Apache JMeter是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量。
Jmeter应用指南
目录目录 (1)前言 (2)一、 脚本录制(Jmeter): (3)在“工作台”添加“HTTP代理服务器” (3)端口: (3)分组: (4)记录 HTTP 信息头: (4)添加断言: (4)Regex matching: (4)在浏览器中录制 (5)二、脚本录制(Badboy): (5)Badboy使用: (5)三、参数化: (6)方法一:使用“函数助手”添加从文件中读取字符串的函数。
(6)方法二:使用“CSV Data Set Config”元件 (8)四、使用关联参数: (8)五、添加检查点: (9)六、设置思考时间: (10)七、设置集合点: (10)八、使用 cookies: (10)九、模拟浏览器操作: (11)HTTP Cache管理器 (11)HTTP请求的“从HTML文件获取所有内含的资源” (11)Embedded URLs must match (11)十、控制器实现脚本逻辑: (12)If控制器: (12)随机控制器: (12)随机顺序控制器: (13)循环控制器: (13)十二、设置场景 (14)设置测试计划: (14)添加线程组: (15)线程组参数分析: (15)线程运行状态显示: (16)十三、响应数据 (17)图形结果:添加“监视器”à“图形结果” (17)察看结果树:添加“监视器”à“察看结果树” (18)聚合报告:添加“监视器”à“聚合报告” (19)Summary Report:添加“监视器”à“Summary Report” (19)将响应情况保存到文件中以供统计: (20)十四、服务器资源监控(Linux) (20)Linux服务器上加入监控脚本: (20)Jmeter上使用监控: (21)将监控到的资源情况保存到文件中以供统计: (22)十五、统计分析 (23)附录 (26)后记 (27)前言一直以来都希望能有一套能够基本满足常规性能测试需求,并有效产生报表的工具,用 以部分替代 LoadRunner 的依赖。
完整的JMETER使用手册-适合初学者
JMETER中文手册分享1.简介Apache JMeter是100%纯java桌面应用程序,被设计用来测试C/S结构的软件(例如web应用程序)。
它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java对象,数据库,FTP服务器等等。
JMeter可以用来在一个服务器、网络或者对象上模拟重负载来测试它的强度或者分析在不同的负载类型下的全面性能。
另外,JMeter能够通过让你们用断言创建测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。
为了最大的灵活性,JMeter允许我们使用正则表达式创建断言。
1.1 历史Apache软件组织的Stefano Mazzocchi是JMeter的创始人。
他编写它起初是为了测试Apache JServ的性能(一个已经被Apache Tomcat工程所替代的工程)。
我们重新设计JMeter 来增强用户界面并增加功能测试的能力。
1.2 未来我们希望看到作为开发者利用它的可插入架构使JMeter的功能快速扩展。
未来发展的主要目标是在没有影响JMeter的负载测试能力的情况下尽可能使JMeter成为最实用的回归测试工具。
2.入门开始使用JMeter最容易的方法是首先下载最新版并且安装它。
这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI等测试时使用需要的所有文件。
如果你想执行JDBC测试,你当然需要从供应商得到适当的JDBC驱动。
JMeter没有提供任何JDBC驱动。
你可能需要下载的其它软件:BeanShell - BeanShell函数和测试元件需要Java Activation Framework - JavaMail需要Java Mail - Mail可视化,Mail Read er 和WebService(SOAP)取样器需要JMS - JMS取样器需要下一步, 开始使用JMeter并且参见用户手册创建一个测试计划一章使自己更加熟悉JMeter基础(例如,添加和删除元件)。
Jmeter入门自学使用手册
Jmeter在访问接口的时候,响应内容如果有中文可能会显示乱码,原因应该是响应页面没有做编码处 理,jmeter默认按照ISO-8859-1编码格式进行解析。
下面把解决步骤列一下: 现象:jmeter访问本地文件,文件内容有中文,jmeter返回内容显示乱码:
2
8.1 为什么要设置集合点? 8.2 同步定时器-设置集合点 8.3 集合点技术实战 9. Jmeter报告说明
1. Jmeter安装
1.1 Jmeter在windows上安装
1. 安装jdk
使用Jmeter的前提是安的 版本。
注意:配置jmeter环境变量的原因,其实这里不用设置也是可以的,但是在这里也进行一下环境变量配 置的说明; 如果配置了jmeter的环境变量,就可以在cmd模式下直接输入jmeter,启动jmeter。
1、加入系统变量JMETER_HOME:E:\apache-jmeter-5.1.1如下图:
2、path后面加上:%JMETER_HOME%\bin;
junit子目录是放junit脚本的。
注意:无法识别 zip 格式的包文件,所以需要的包文件均要求以 .jar 结尾
**5、printable_docs:**usermanual子目录下是jmeter用户手册,尤其是component_reference.html 是最常用的核心元件帮助手册。
**1、bin:**可执行文件目录
**2、docs:**文档目录
**3、extras:**扩展插件目录,目录下的文件提供了对ant的支持
**4、lib:**所用到的插件目录,里面全是jar包,JMeter 会自动在 JMETER_HOME/lib 和 ext 目录下 寻找需要的类。 lib目录下的ext子目录是jmeter的核心jar包;用户扩展所依濑的包直接放到lib下即可,不要放到 lib/ext下,直接放在lib目录下即可。
JMeter中文使用手册
JMeter中文使用手册Version: 1.0Author : Alex Bai1.Apache jmeter纯java桌面应用程序,设计用来测试C/S结构的软件,可以用来测试包含基于静态和动态资源程序的性能,jmeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。
Jmeter能够通过让你们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。
2.代理服务器?3.创建测试计划一个测试计划描述了一系列jmeter运行时要执行的步骤。
一个完整的测试计划包含一个或者多个线程组,逻辑控制,取样发生控制,监听器,定时器、断言和配置元件。
4.运行测试计划为了运行一个测试计划,从“run”菜单项选择“start”。
停止同样! Stop5.作用域规则Jmeter测试树包含元件总是分等级和顺序的,在测试树中的一些元件是严格分级(监听器,配置元素,后置处理器,前置处理器,断言,定时器),一些主要是顺序的(控制器、取样器)。
当你创建你的测试计划时,你将创建一个描述被执行的步骤集的取样请求有序列表。
哪些请求常组织在有序的控制器中。
一个断言在测试中是分等级的。
如果你的父元件是请求,它就被应用于那个请求,如果它的父元件是控制器,它就影响所有控制器下的所有请求。
6.服务器模式为了分布测试,在服务器模式运行jmeter,并且通过用户界面控制每一台服务器。
7.测试计划元件测试计划对象有一个叫做“功能测试”复选框。
如果被选择,它将导致jmeter记录来自服务器返回的每个取样的数据。
如果你在你的测试监听器中选择一个文件,这个数据将被写入文件。
怀疑这里功能测试指得是:测试计划中的函数模式,但是这个将很影响性能。
8.后置处理器元件一个后置控制器在一个取样器请求被建立后执行一些操作,如果一个后置处理器附属于一个取样器元件,它仅在取样器元件运行后执行,后置处理器最多用来处理相应数据,常用来从它里面摘录数值。
JMeter中文使用手册
1. 简介Apache JMeter是100%纯java桌面应用程序,被设计用来测试C/S结构的软件(例如web应用程序)。
它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。
JMeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。
另外,JMeter能够通过让你们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。
为了最大的灵活性,JMeter允许我们使用正则表达式创建断言。
1.1 历史Apache软件组织的Stefano Mazzocchi是JMeter的创始人。
他写出它起初是为了测试Apache JServ的性能(一个已经被Apache Tomcat工程所替代的工程)。
我们重新设计JMeter来增强用户界面和增加功能测试的能力。
1.2 未来我们希望看到作为开发者利用它的可插入架构使JMeter的功能快速扩展。
未来发展的主要目标是在没有危机JMeter的负载测试能力的情况下尽可能使JMeter成为最实用的回归测试工具。
2. 入门开始使用JMeter最容易的方法是首先下载最新版并且安装它。
这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI测试时使用的所有文件。
如果你想执行JDBC测试,你当然需要从厂商得到适当的JDBC驱动。
JMeter没有提供任何JDBC驱动。
其它你可能需要下载的软件:•BeanShell•Java Activation Framework - JavaMail需要•Java Mail - mail 显示 and SOAP 测试需要•JMS - JMS 取样器•General Java download page详细参见安装的jar包中的 JMeter Classpath 一章•下一步, 开始使用JMeter并且参见用户手册构建测试计划一章使自己更加熟悉JMeter基础 (例如,添加和删除元素)。
Jmeter中文手册(完全版)
安装JDK:JAVA的环境变量设置使用鼠标右击“我的电脑”-〉属性->高级—〉环境变量系统变量—>新建—>变量名:JAVA_HOME 变量值:d:\jdk系统变量—>编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;系统变量-〉新建-〉变量名:CLASSPATH 变量值:.;安装TomcatCATALINA_HOME=d: \tomcatUser Manual用户手册1 介绍Apache JMeter 是100%纯JAVA桌面应用程序, 被设计为用于测试CS结构的软件.同时也可以用来测试静态和动态资源的性能,例如:静态文件, Java Servlets, CGI Scripts, Java Object,数据库和FTP服务器等等。
JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
同时, JMeter可以帮助你对你的应用程序进行回归测试. 通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值. 为了更高的适应性, JMeter允许你使用常规表达式来创建这些assertions。
2 开始2.1 安装下载安装最新的版本, 将会包含所有你需要建立和运行Web, FTP, JDBC和JNDI测试的文件. 如果你想进行JDBC测试,你需要使用合适的JDBC driver. JMeter中不包含JDBC drivers。
其他可能需要下载的软件:●Bean Shell●Java Activation Framework – needed for Java Mail●Java Mail – needed for mail visualiser and SOAP test●JMS – for JMS samples●General Java Kit接下来一步,就是浏览”建立测试计划”一章来熟悉JMeter的基本操作,例如:添加和删除元素. 最后,浏览适当的章节来学习如何建立不同种类的测试计划. 例如, 如果你对Web应用程序的测试比较感兴趣, 就浏览”建立一个Web测试计划"章节。
转载JMeter中文使用手册新编精选版
Java 不包括 SSL (HTTPS) 支持 - 你将需要下载 JSSE. 同样, 它不会像其他更高版本的Java那样好的运行。为了更好的结果使用或者。
操作系统
JMeter是100%纯Java应用程序并且能够正确的在任何有适当的Java实现的操作系统上运行。
非用户界面模式 (命令行模式)
为了不相互影响测试, 你可以选择运行没有用户界面的JMeter。这样做,使用下列命令选项:
-n 这是指定JMeter在非用户界面模式运行
-t [包含测试计划的JMX文件的名字]
-l [记录取样结果的JTL文件的名字]
-r 运行在文件里所有的远程服务器 (或者通过在命令行覆盖属性指定远程服务器)
未来
我们希望看到作为开发者利用它的可插入架构使JMeter的功能快速扩展。未来发展的主要目标是在没有危机JMeter的负载测试能力的情况下尽可能使JMeter成为最实用的回归测试工具。
2. 入门
开始使用JMeter最容易的方法是首先下载最新版并且安装它。这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI测试时使用的所有文件。
JMeter 在下列环境已经被测试:
Unix (Solaris, Linux, 等)
Windows (98, NT, 2000, xp)
OpenVMS Alpha +
可选
如果你计划做JMeter开发或者想使用SUN的java标准扩展包,你将需要下列更多的可选包。
Java 编译器
如果你想编译JMeter源代码或者开发JMeter插件,你将需要一个完整的适当的或者更高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jmeter使用手册目录目录 (1)一、简介: (3)二、入门: (4)2.1 需求 (4)2.1.1 Java 版本 (4)2.1.2 操作系统 (4)2.2 可选 (5)2.2.1 Java 编译器 (5)2.2.2 SAX XML解析器 (5)2.2.3 Email 支持 (5)2.2.4 SSL 加密 (5)2.2.5 JDBC 驱动 (5)2.2.6 Apache SOAP (6)2.3 安装 (6)2.3.1 下载最新版本 (6)2.4 运行JMeter (6)2.4.2 使用代理服务器 (6)2.4.3 非用户界面模式(命令行模式) (7)2.4.4 服务器模式 (7)2.4.5 通过命令行覆盖属性 (7)2.4.6日志和错误信息 (8)2.4.7 命令行选项目录 (8)2.5 配置JMeter (9)三、创建一个测试计划 (10)3.1 添加和删除元件 (10)3.2 加载和保存元件 (10)3.3 配置树元件 (10)3.4 运行一个测试计划 (10)3.5 作用域规则 (10)四、测试计划元件 (12)4.1 后置处理器元件 (12)4.2 执行顺序 (12)五、使用Jmeter测试 (13)5.1创建一个网站测试计划 (13)5.1.1添加用户 (13)5.1.2 添加默认HTTP请求属性 (14)5.1.3 添加Cookie 支持 (15)5.1.4 添加HTTP 请求 (16)5.1.5 添加一个监听器到试图储存测试结果 (17)5.1.6 保存测试计划 (18)5.1.7 运行测试计划 (18)5.2创建一个高级web测试计划。
(18)5.2.1 用URL重写处理用户会话 (18)5.2.2 使用消息头管理 (18)5.3创建一个数据库测试计划 (18)5.3.1 添加用户 (19)5.3.2 添加JDBC请求 (20)5.3.3添加一个监听器浏览/保存测试结果 (23)5.3.4保存测试计划 (24)5.3.5 运行测试计划 (24)5.3.6 JDBC设置 (24)5.4创建一个FTP测试计划 (25)5.4.1添加用户 (25)5.4.2添加默认FTP请求配置 (26)5.4.3添加FTP请求 (28)5.4.4添加一个监听器浏览/保存测试结果 (29)5.4.5保存测试计划 (30)5.4.6运行测试计划 (30)5.5构建一个Web服务测试计划 (30)5.5.2添加web服务请求 (32)5.6创建JMS主题测试计划 (32)5.6.1添加用户 (32)5.6.2添加JMS订阅者和发布者 (33)5.6.3添加一个监听器浏览/保存测试结果 (35)5.6.4保存测试计划 (36)5.6.5运行测试计划 (36)5.7监听器介绍 (36)5.7.1屏幕捕获 (37)5.7.2非GUI测试运行 (37)5.7.3资源使用 (37)5.7.4 CSV日志格式 (37)六、Badboy+JMeter压力测试 (38)七、JMeter压测OA系统 (47)八、参考资料 (50)一、简介:Apache JMeter是100%纯java桌面应用程序,被设计用来测试C/S结构的软件(例如web应用程序)。
它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。
JMeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。
JMeter 的主要测试组件总结如下:1. 测试计划是使用JMeter 进行测试的起点,它是其它JMeter 测试元件的容器。
2. 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
实际的请求内容在Sampler中定义,它被线程组包含。
3. 监听器负责收集测试结果,同时也被告知了结果显示的方式。
4. 逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
5. 断言可以用来判断请求响应的结果是否如用户所期望的。
它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。
这个限制对于有效的测试是非常有用的。
6. 配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
7. 前置处理器和后置处理器负责在生成请求之前和之后完成工作。
前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
8. 定时器负责定义请求之间的延迟间隔。
二、入门:开始使用JMeter最容易的方法是首先下载最新版并且安装它。
这个版本包含所有你在构建和运行Web,FTP,JDBC,和JNDI测试时使用的所有文件。
如果你想执行JDBC测试,你当然需要从厂商得到适当的JDBC驱动。
JMeter没有提供任何JDBC驱动。
其它你可能需要下载的软件:•BeanShell•Java Activation Framework - JavaMail需要•Java Mail - mail 显示 and SOAP 测试需要•JMS - JMS 取样器•General Java download page下一步, 开始使用JMeter并且参见用户手册构建测试计划一章使自己更加熟悉JMeter 基础 (例如,添加和删除元素)。
最后, 参见如何构建一个明确类型的测试用例的适合章节。
例如,如果你对Web应用测试感兴趣,那就参见构建一个Web测试计划。
其他测试计划的细节是JDBC, FTP, and JNDI。
一旦你熟练构建和执行JMeter测试计划, 通过你的测试计划你会观察到给你更多帮助的各种元素的配置(定时器, 监听器, 断言, 和其他)。
2.1 需求JMeter 需要运行环境匹配的最低需求。
2.1.1 Java 版本JMeter 需要一个完整适当的JVM 1.3或更高的版本. 我们现在尽力与JVM 1.3保持兼容,然而JMeter 在1.4或者更高运行的会最好。
此处我们安装jdk-7u25-windows-i586这个版本。
2.1.2 操作系统JMeter是100%纯Java应用程序并且能够正确的在任何有适当的Java实现的操作系统上运行。
JMeter 在下列环境已经被测试:Unix (Solaris, Linux, 等)Windows (98, NT, 2000, xp)OpenVMS Alpha 7.3+2.2 可选如果你计划做JMeter开发或者想使用SUN的java标准扩展包,你将需要下列更多的可选包。
2.2.1 Java 编译器如果你想编译JMeter源代码或者开发JMeter插件,你将需要一个完整的适当的JDK1.3或者更高。
2.2.2 SAX XML解析器JMeter 使用Apache's Xerces XML 解析器你可以选择告诉JMeter使用一个不同的XML 解析器。
这样做,把第三方的解析器的类包包含在JMeter的classpath 中,并更新jmeter.properties 文件里的解析器实现的全类名。
2.2.3 Email 支持JMeter 有有限的Email 能力。
它能够发送给你测试结果的email,并且支持POP/IMAP 取样器。
它现在不支持SMTP 取样。
为了能够支持Email, 需要添加Sun 的JavaMail包和activation包到JMeter classpath 。
2.2.4 SSL 加密为了测试一个使用SSL加密(HPPS)的web服务器,JMeter 需要一个提供SSL实现(例如Sun的Java Secure Sockets Extension - JSSE)。
包含需要的加密包到JMeter的classpath 。
同样,通过注册SSL提供者更新jmeter.properties 。
为了更好的管理证书,也要有一个SSL 管理器。
JMeter 代理服务器(见下)不支持记录SSL(https)。
2.2.5 JDBC 驱动你需要添加你的厂商的JDBC驱动到classpath,如果你需要JDBC测试.确认文件是一个jar文件,而不是zip。
2.2.6 Apache SOAPApache SOAP 需要mail.jar 和activation.jar. 你需要下载并拷贝两个jar文件到你jmeter/lib 目录.一旦文件放到那里,JMeter 会自动找到它们。
2.3 安装2.3.1 下载最新版本保证一个JRE/JDK正确的安装并且设置环境变量JAVA_HOME。
之后下载一个Jmeter版本,下载地址:/download_jmeter.cgi。
下载文件进行安装即可。
2.4 运行JMeter要运行JMeter, 运行jmeter.bat (for Windows) 或者jmeter (for Unix) 文件。
JMeter 必须从JMeter 的bin 目录中启动。
亦可以创建快捷方式在桌面等。
2.4.1 JMeter ClasspathJMeter 自动从在它的/lib 和/lib/ext目录中的jar包发现类。
如果你开发新的JMeter 组件,你可以压缩它们成jar包并拷贝到JMeter 的/lib/ext 目录。
JMeter 将会自导发现在这里的任何jar包的JMeter 组件。
如果你不想把扩展jar包放到lib/ext 目录,可以在jmeter.properties中定义search_paths属性。
不要使用lib/ext 给那些有用的jar包;它仅仅是存放JMeter 组件。
其他jar包(例如JDBC, 和任何JMeter代码需要支持的类库)应该被代替放在lib目录。
你可以在%JAVA_HOME%/jre/lib/ext安装有用的jar文件,或者你可以在jmeter.properties 中设置user.classpath属性。
注意设置CLASSPATH 环境变量将不起作用。
这是因为JMeter 使用"java --jar"启动,并且java命令无记录忽略CLASSPATH 变量,并且当使用-jar选项时-classpath/-cp 选项也被使用。
[所有的java程序都是这样,不仅仅是JMeter。
]2.4.2 使用代理服务器如果你在防火墙/代理服务器后测试,你需要提供给JMeter防火墙/代理服务器的主机名和端口号。
这样做,从命令行使用以下参数运行jmeter.bat/jmeter文件:-H [代理服务器主机名或者ip地址]-P [代理服务器端口]-N [非代理主机] (例如:*|localhost)-u [代理证书用户名- 如果需要]-a [代理证书密码- 如果需要]例如: jmeter -H my.proxy.server -P 8000 -u username -a password -N localhost或者, 你使用--proxyHost, --proxyPort, --username, and --password2.4.3 非用户界面模式(命令行模式)为了不相互影响测试, 你可以选择运行没有用户界面的JMeter。