JMeter中文使用手册.docx
- 文档编号:9673978
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:31
- 大小:306.17KB
JMeter中文使用手册.docx
《JMeter中文使用手册.docx》由会员分享,可在线阅读,更多相关《JMeter中文使用手册.docx(31页珍藏版)》请在冰点文库上搜索。
JMeter中文使用手册
JMeter中文使用手册
Version:
1.0
Author:
AlexBai
1.Apachejmeter
纯java桌面应用程序,设计用来测试C/S结构的软件,可以用来测试包含基于静态和动态资源程序的性能,jmeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。
Jmeter能够通过让你们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。
2.代理服务器?
3.创建测试计划
一个测试计划描述了一系列jmeter运行时要执行的步骤。
一个完整的测试计划包含一个或者多个线程组,逻辑控制,取样发生控制,监听器,定时器、断言和配置元件。
4.运行测试计划
为了运行一个测试计划,从“run”菜单项选择“start”。
停止同样!
Stop
5.作用域规则
Jmeter测试树包含元件总是分等级和顺序的,在测试树中的一些元件是严格分级(监听器,配置元素,后置处理器,前置处理器,断言,定时器),一些主要是顺序的(控制器、取样器)。
当你创建你的测试计划时,你将创建一个描述被执行的步骤集的取样请求有序列表。
哪些请求常组织在有序的控制器中。
一个断言在测试中是分等级的。
如果你的父元件是请求,它就被应用于那个请求,如果它的父元件是控制器,它就影响所有控制器下的所有请求。
6.服务器模式
为了分布测试,在服务器模式运行jmeter,并且通过用户界面控制每一台服务器。
7.测试计划元件
测试计划对象有一个叫做“功能测试”复选框。
如果被选择,它将导致jmeter记录来自服务器返回的每个取样的数据。
如果你在你的测试监听器中选择一个文件,这个数据将被写入文件。
怀疑这里功能测试指得是:
测试计划中的函数模式,但是这个将很影响性能。
8.后置处理器元件
一个后置控制器在一个取样器请求被建立后执行一些操作,如果一个后置处理器附属于一个取样器元件,它仅在取样器元件运行后执行,后置处理器最多用来处理相应数据,常用来从它里面摘录数值。
9.执行顺序
定时器—任何个
取样器
后置处理器
断言
监听器
10.添加用户
处理每个jmeter测试计划的第一步就是添加线程组元件,这个线程组会告诉jmeter你想要模拟的用户数量,用户应该发送请求的频率和应该发送的数量。
进一步来添加一个线程组:
首先选择这个测试计划,用鼠标右键点击然后在得到的菜单中选择添加-->线程组。
这时你应该看到这个线程组已经在测试计划下面了,如果没有看到,就点击测试计划元件展开这个测试计划树。
下一步,你需要修改这些默认的属性。
如果你还没有选择线程组元件,则从测试计划树型结构中选择它。
这时你应该看到JMeter窗口右边的线程组控制面板了。
在下一个theRamp-UpPeriod文本域中,使用默认值为0。
这个属性表示每个用户启动的迟延时间。
例如,如果你输入Ramp-UpPeriod为5秒,JMeter将会在五秒结束前完成启动所有的用户。
所以,如果你有五个用户并且Ramp-UpPeriod为五秒,那么开始用户的延迟就是1秒。
(5个用户/5秒=1用户每秒).JMeter将会立即启动你所有的用户,如果你设置其值为0。
最后,取消标记为"永远"的复选框选择并设置循环次数为2。
这个属性表示你的测试的重复次数。
如果你设置为1,JMeter将你的测试只运行一次。
要让JMeter不断的运行,你要选择"永远"这个复选框。
经过实践这里的loopcount指的是要测试执行的总次数。
初始默认为1,表示总共只执行一次。
11.逻辑控制器
1、foreach控制器
输入变量前缀、输出变量名称
2、如果(if)控制器
条件符合时执行控制的子节点内容
示例:
判断${is_run}=1是否成立,如果成立就执行http请求;复选框“evaluateforallchildren?
“表示是否对所有子节点使用判断条件,不选择的话,只对第一个子节点生效。
无else判断,可以用非条件来实现。
3、Includecontroller
Includetestplan上传一文件
4、交替控制器
忽略资控制器块
5、简单控制器
起到划分清晰的作用,对录制的脚本有层次感。
6、循环控制器
默认下的sept为循环控制器。
7、模块控制器
设置指向要运行的逻辑控制器
8、仅一次控制器
这个逻辑控制器与简单逻辑控制器很相同,里面没有任何设置。
9、随机控制器
随机执行某一个子节点内容
这个逻辑控制器与交替控制器设置很相同。
当复选框“忽略控制器块”未勾选时,简单控制器是作为一个节点跟其它随机控制器子
节点一起参与随机执行;勾选时,简单控制器下的子节点直接参与其它随机控制器子节点一起参与随机执行。
?
?
10、随机顺序控制器
里面没有任何设置与仅一次控制器很相同。
11、Runtimecontroller
运行时间控制器?
12、Switchcontroller
只有一个swtichvalue
13、吞吐量控制器?
14、事务控制器?
15、Whilecontroller?
16、录制控制器
录制控制器与简单逻辑控制器很相同。
12.设置思考时间
在脚本中添加“定时器“—>”固定定时器“
(请求之间的间隔时间)设定延迟时间。
13.设置集合点
在脚本中添加“定时器“”synchronizingtimer“
设置集合点处的并发用户数,即“多少“个用户达到集合点后再执行。
14.定时器
1、Beanshelltimer
2、Constantthroughputtimer
3、synchronizingTimer
4、固定定时器
5、高斯随机定时器
6、UniformrandomTimer
15.配置元件
1、csvdatasetconfig
2、randomvariable
3、用户定义的变量
4、登录配置元件/素
5、简单配置元件
6、计数器
7、FTP请求缺省值
8、HTTP请求默认值
9、HTTP授权管理器
10、HTTPcachemanager
11、httpcookie管理器
12、HTTP信息头管理器
13、Java请求默认值
14、JDBCconnectionconfiguration
15、LDAP请求默认值
16、LADPExtendedrequestdefaults
17、TCP取样器配置
16.前置处理器
1、BSFpreprocessor
2、Beanshellpreprocessor
3、用户参数
4、HTML连接解析器
5、HTML参数掩码
6、HTTPURL重写修饰符
7、HTTP用户参数修饰符
17.Sampler
实践证明一个取样器就是一个请求。
1、FTP请求
2、AJP/1.3Sampler
3、http请求
4、HTTPrequesthttpclient
5、Soap/xml-RPCrequest
6、Webservice(soap)request
7、Accesslogsampler
8、BSF取样器
9、Beanshellsampler
10、Junitrequest
11、Java请求
12、Jdbcrequest
13、LDAPextendedrequest
14、LDAP请求
15、TCP取样器
16、Debugsampler
17、Testaction
18.后置处理器
1、BSFpreprocessor
2、Beanshellpreprocessor
3、Debugpostprocessor
4、正则表达式提取器
要检查的响应字段,用正则表达式。
5、XpathExtractor
6、Resultstatusactionhandler
取样器错误后要执行的动作设置。
线程组中也有此设置。
19.断言
自己对断言这理解不清晰?
1、BSFAssertion
2、响应断言
3、断言持续时间
4、BeanShell断言
5、HTMLAssertion
6、MD5Hex断言
7、SizeAssertion
8、XML断言
9、XMLSchemaAssertion
10、XPthAssertion
20.监听器
1、保存响应到文件(saveresponsestoafile)
2、生成概要结果(generatesummaryresults)
3、断言结果(assertionresults)
4、BSFListener
5、BeanShellListener
6、Distributiongraph(alpha)
7、图形结果(graphfullresults)
8、GraphResults
9、监视器结果(monitorresults)
10、SimpleDataWriter
11、SplineVisualizer
12、AggregateGRAph
13、察看结果树(viewresultstree)
14、用表格察看结果(viewresultsintable)
15、SummaryReport
16、聚合报告(aggregatereport)与SummaryReport区别?
21.监听器重新刷新的小技巧
选择语言进行重新更改,监听器就会自动刷新。
22.添加默认http请求属性
在选择线程组元件中,右键点击并在弹出的菜单中选择添加-->配置元件-->HTTP请求默认值。
文本域是WebServer的Server名字/IP。
对于这个测试计划中,所有的HTTP请求都将发送到相同的网站服务器jakarta.apache.org。
向文本域中输入名字,这是唯一的一个需要我们去修改它的默认值,其它的文本域都保留它们的默认值。
HTTP请求默认值元件并不告诉JMeter来发送HTTP请求,它仅仅定义这个HTTP请求所用的默认值。
23.添加cookie支持
除非你的应用程序明确的不使用Cookies,几乎所有的网站应用程序都会使用cookie支持。
要添加cookie支持,可以简单的在你的测试计划中给每一个线程组添加一个HTTPCookie管理器。
这样确信每个线程组有自己的cookies,但是通过所有交互的HTTP请求对象变成共享。
添加HTTPCookie管理器,简单地,选择这个线程组,选择添加-->HTTPCookie管理器,也可以从编辑菜单或通过右键点击来实现添加。
24.添加http请求
在这个测试计划中,我们需要实现两个HTTP请求。
第一个就是Jakarta网站首页(http:
//jakarta.apache.org/
),第二个就是工程向导网页(http:
//jakarta.apache.org/site/guidelines.html
)。
JMeter按照它们在树的出现的次序来发送请求。
首先给JakartaUsers元件添加第一个HTTP请求(添加-->取样器-->HTTP请求)。
然后从树中选择HTTP请求元件并修改正面的属性(看图5.5):
更改名称域为"HomePage".
设置路径域为"/"。
你不必要设计服务器的名称域,因为你已经在HTTP请求默认值元件中设定过了。
图5.5.Jakarta首页的HTTP请求
下一步,添加每二个HTTP请求并修改下面的属性(见图5.6):
更改名称域为"ProjectGuidelines"。
设置路径域为"/site/guidelines.html"。
25.添加一个监听器到试图存储测试结果
最后一个你需要给测试计划的元件是监听器。
这个元件的用途是将所有的HTTP请求结果存储在一个文件中并显现出数据的可视模型。
选择JakartaUsers元件,然后添加一个图形结果监听器(添加-->图形结果).接着,你需要指定一个文件路径和输出文件名。
你可以在文件名域中输入或选择浏览按钮并选择一个路径然后输入文件名。
26.保存测试计划
尽管它并不必要,我们还是建议你在运行测试计划前将它保存在一个文件里边。
通过选择文件菜单中的"保存测试计划"来保存(在最新版本中你不需要先选择测试计划元件)。
JMeter允许你保存整个测试计划树,也可以只保存其中的一部分。
要保存特别树枝中的一些元件,首先选择树枝的起始元件,然后在右键弹出的菜单中选择保存为菜单项。
同样的,也可以选择合适的元件,然后选择编辑菜单中的"另存为"。
27.创建一个高级web测试计划
28.用url重写处理用户会话?
29.使用消息头管理
HTTP消息头管理让你定制JMeter在HTTP请求消息头发送的信息。
这个消息头包括像"User-Agent","Pragma","Referer"等属性。
HTTP消息头管理好像HTTPCookie管理,如果你因为一些原因你不希望在你的测试里为不同的HTTP请求对象指定不同的消息头,可以被添加到线程组水平。
30.创建一个数据库测试计划
在这一部分,你将学会如何去创建一个基础的测试计划来测试一个数据库服务器。
你会创建10个用户来给数据库服务器发送2次SQL请求。
同样,你也可以让用户运行他们的测试三次。
这样总的JDBC请求数量就是(10用户)*(2次请求)*(重复3次)=60。
要构建这个测试计划,你将会用到下面的元件:
线程组,JDBC请求,图形结果。
31.添加用户
将用户的数量(即threads)增加不10。
在下一个theRamp-UpPeriod文本域中,使用默认值为0。
这个属性表示每个用户启动的迟延时间。
例如,如果你输入Ramp-UpPeriod为5秒,JMeter将会在五秒结束前完成启动所有的用户。
所以,如果你有五个用户并且Ramp-UpPeriod为五秒,那么开始用户的延迟就是1秒。
(5个用户/5秒=1用户每秒).JMeter将会立即启动你所有的用户,如果你设置其值为0。
最后,取消标记为"永远"的复选框选择并设置循环次数为2。
这个属性表示你的测试的重复次数。
如果你设置为1,JMeter将你的测试只运行一次。
要让JMeter不断的运行,你要选择"永远"这个复选框。
32.添加JDBC请求
定义了用户,就要定义行为。
首先选择JDBC用户元件,右击,在弹出的菜单中选择addconfigelement—》JDBCconfiguration,设置后的页面如下图:
JDBCConfiguration
再次选择JDBC用户元件。
右键点击,并在弹出的菜单中选择Add-->Sampler-->JDBCRequest。
然后,选择一个新的元件来显示其控制面板(见图7.4)。
Figure7.4.JDBCRequest
在我们这个测试计划中,我们将发送2个JDBC请求。
第一个是向EastmanKodakstock,第二个是向Pfizerstock(很显然需要改变这些例子来适合你的特殊的数据库)。
下面的插图文字说明。
JMeter发送请求的次序就是你向树中添加它们的次序。
首先修改下面的属性值勤(见图7.5):
∙修改名字Name为"Kodak"
∙输入PoolName:
MySQL(在配置元件里面一样)
∙输入SQLQueryString(数据库查讯字符串)
Figure7.5.JDBCRequestforEastmanKodakstock
然后,添加第二个JDBC请求并编辑正面的属性(见图7.6):
∙修改名字Name为"Pfizer"
∙输入SQLQuery语句
Figure7.6.JDBCRequestforPfizerstock
7.4添加一个监听器浏览/保存测试结果
你需要添加到你测试计划的最后元件是一个监听器。
这个元件责任是储存所有你的JDBC请求结果到文件,并且展示一个可视数据模型。
选择JDBCUsers元件,添加一个GraphResults监听器(Add-->Listener-->GraphResults)。
7.5保存测试计划
虽然它不是需要的,但是我们推荐你在运行前保存测试计划到一个文件。
为了保存测试计划,从File菜单选择SaveTestPlan(使用最新版本,它不再需要首先选择测试计划元件)。
JMeter允许你保存这个测试计划树或者其中一部分。
为了仅保存在测试计划树上的特殊"分支",选择在树中用来启动"分支"的测试计划元件,然后右击在菜单项中选择"Save"。
或者,选择合适测试计划元件,然后从Edit菜单选择Save。
7.6运行测试计划
从Run菜单,选择Run。
如果你测试正在运行,JMeter在右手上方的角落点燃一个绿正方形显示。
当所有测试停止,那个方块变成灰色。
即使你选择了"stop",绿光依然会继续停留,知道所有测试都已经停止。
7.7JDBC设置
不同的数据库和JDBC驱动程序需要不同的JDBC设置。
JDBC执行的提供者来定义数据库URL和数据库驱动程序类。
下面是一些可能的设置。
要得到详细的说明请看JDBC驱动程序文档。
Datebase
Driverclass
DatabaseURL
MySQL
com.mysql.jdbc.Driver
jdbc:
mysql:
//host:
port/{dbname}
PostgreSQL
org.postgresql.Driver
jdbc:
postgresql:
{dbname}
Oracle
oracle.jdbc.driver.OracleDriver
jdbc:
oracle:
thin:
user/pass@//host:
port/service
Ingres(2006)
ingres.jdbc.IngresDriver
jdbc:
ingres:
//host:
port/db[;attr=value]
33.创建一个FTP测试计划
你将学习到如何创建一个基本的测试计划来测试FTP站点。
你将为在O'Reilly的FTP站点上的两个文件创建四个发送请求的用户。
同样,你将告诉用户运行测试两次。
所以整个测试数目是(4个用户)*(2个请求)*(重复2次)=16个FTP请求。
为了构造测试计划,你将需要使用下列元件:
测试线程,FTP请求,FTP默认请求和SplineVisualizer。
34.添加用户
你想处理每个JMeter测试计划的第一步是添加线程组元件。
线程组告诉JMeter你想模拟的用户数,用户发送请求的频率,和发送请求的数量。
定义行为:
右键点击得到Add菜单,然后选择Add-->ConfigElement-->FTPRequestDefaults。
于是选择新的元件预览它的控制面板。
填写相应数据:
35.添加ftp请求
首先添加第一个FTP请求到O'ReillyUsers元件(Add-->Sampler-->FTPRequest)。
然后在树中选择FTP请求元件。
制作两个ftp请求。
36.添加一个监听器浏览/保存测试结果
你需要添加到你测试计划的最后元件是一个监听器。
这个元件责任是储存所有你的FTP请求结果到文件,并且展示一个可视数据模型。
添加一个SplineVisualizer监听器(Add-->Listener-->SplineVisualizer)。
构建一个Web服务测试计划
在这章,你将学习如何创建一个测试web服务的测试计划。
你将创建五个发送请求到一个页面的用户。
同时,你将告诉用户运行他们的测试两次。
所以整个请求是(5用户)*(1请求)*(重复2次)=10HTTP请求。
为了构造测试计划,你将需要使用以下元件:
测试计划、Web服务(SOAP)请求(beta版代码)和图表结果。
Generalnotesonthewebservicessampler.现在实现使用ApacheSOAP驱动程序,需要来自sun的activation.jar和mail.jar包。
由于协议限制,JMeter没有包含这些jar文件到二进制版本。
请查阅SOAP文档的未来细节。
如果取样器表现出从web服务中得到一个错误,仔细检查SOAP消息,确认格式正确。
细节方面,确认xmlns属性和WSDL是一样的。
如果xml命名空间是不同的,web服务将会可能返回一个错误。
Xmethods为那些想要测试他们的测试计划的人包含了一系列公用的web服务。
10.1添加用户
你想处理每个JMeter测试计划的第一步是添加线程组元件。
线程组告诉JMeter你想模拟的用户数,用户发送请求的频率,和发送请求的数量。
顺便说一下,首先选择测试计划,右键点击得到Add菜单,并且选择Add->ThreadGroup,通过这种方式添加线程组。
现在你应该看到了测试计划下的线程组元件了。
如果你看不到这个元件,单击测试计划元件展开测试计划树。
下一步,你需要修改默认配置。
如果你还没有选择线程组元件,在树里选择它。
现在在JMeter窗口右部你应该可以看到线程组控制面板。
(见下10.1)
图10.1使用默认值的线程组
首先给线程组起一个更加有意义的名字。
在name文本域,输入O'ReillyUsers。
先一步,增加用户数(调用线程)到四个。
在下一个文本域——Ramp-UPPeriod,使用默认值0秒。
这个属性告诉JMeter启动每个用户之间的时间间隔。
例如,你输入Ramp-UpPeriod为五秒,JMeter将会在最后5秒结束前启动所有你的用户。
所以,如果我们有5个用户和一个5秒的Ramp-UpPeriod,那么启动用户的延迟就是1秒(5用户/5秒=1用户每秒)。
如果你设置为那个值为零,那么JMeter将会立刻启动所以你的用户。
最后,清除标为"Forever"的复选框,并且在循环次数文本域中输入2。
这个属性告诉JMeter重复你的测试的次数。
如果你输入循环次数为0,那么JMeter将会运行你的测试一次。
为了让JMeter重复运行你的测试计划,选择Forever复选框。
在大部分应用程序中,你必须在控制面板中手工改变。
然而,在JMeter中,控制面板中自动接受你做的改变。
如果你修改元件名,这个树会在你离开控制面板前自动使用新的文本更新这个树(例如,当你选择另一个树元件时)。
见图10.2完整的JakartaUsers线程组。
图10.2JakartaUsers线程组
10.2添加web服务请求
在我们的测试计划,我们将使用一个.NETweb服务。
自从你在使用web服务取样器,我们将不用深究写一个web服务的细节。
如果你不知道如何写一个web服务,使用google搜索web服务并自己去熟悉写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JMeter 中文 使用手册
![提示](https://static.bingdoc.com/images/bang_tan.gif)