JMeter中文使用手册
Version: 1.0 Author : Alex Bai
1. Apache jmeter
纯java桌面应用程序,设计用来测试C/S结构的软件,可以用来测试包含基于静态和动态资源程序的性能,jmeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。
Jmeter能够通过让你们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。
2. 3.
代理服务器? 创建测试计划
一个测试计划描述了一系列jmeter运行时要执行的步骤。一个完整的测试计划包含一个或者多个线程组,逻辑控制,取样发生控制,监听器,定时器、断言和配置元件。
4. 5.
运行测试计划 作用域规则
为了运行一个测试计划,从“run”菜单项选择“start”。停止同样! Stop
Jmeter测试树包含元件总是分等级和顺序的,在测试树中的一些元件是严格分级(监听器,配置元素,后置处理器,前置处理器,断言,定时器),一些主要是顺序的(控制器、取样器)。当你创建你的测试计划时,你将创建一个描述被执行的步骤集的取样请求有序列表。哪些请求常组织在有序的控制器中。
一个断言在测试中是分等级的。如果你的父元件是请求,它就被应用于那个请求,如果它的父元件是控制器,它就影响所有控制器下的所有请求。
6. 7.
服务器模式 测试计划元件
为了分布测试,在服务器模式运行jmeter,并且通过用户界面控制每一台服务器。
测试计划对象有一个叫做“功能测试”复选框。如果被选择,它将导致jmeter记录来自服务器返回的每个取样的数据。如果你在你的测试监听器中选择一个文件,这个数据将被写入文件。怀疑这里功能测试指得是:测试计划中的函数模式,但是这个将很影响性能。
8. 后置处理器元件
一个后置控制器在一个取样器请求被建立后执行一些操作,如果一个后置处理器附属于一个取样器元件,它仅在取样器元件运行后执行,后置处理器最多用来处理相应数据,常用来从它里面摘录数值。
9. 执行顺序
定时器—任何个 取样器 后置处理器 断言 监听器
10. 添加用户
处理每个jmeter测试计划的第一步就是添加线程组元件,这个线程组会告诉jmeter你
想要模拟的用户数量,用户应该发送请求的频率和应该发送的数量。
进一步来添加一个线程组:首先选择这个测试计划,用鼠标右键点击然后在得到的菜单中选择添加--> 线程组。
这时你应该看到这个线程组已经在测试计划下面了,如果没有看到,就点击测试计划元件展开这个测试计划树。
下一步,你需要修改这些默认的属性。如果你还没有选择线程组元件,则从测试计划树型结构中选择它。这时你应该看到JMeter窗口右边的线程组控制面板了。
在下一个the Ramp-Up Period文本域中 , 使用默认值为0。这个属性表示每个用户启动的迟延时间。例如,如果你输入Ramp-Up Period 为5秒,JMeter将会在五秒结束前完成 启动所有的用户。所以,如果你有五个用户并且Ramp-Up Period为五秒,那么开始用户的延迟就是1秒。(5个用户 / 5秒 = 1 用户每秒). JMeter将会立即启动你所有的用户,如果你设置其值为0。
最后,取消标记为\永远\的复选框选择并设置循环次数为2。 这个属性表示你的测试的重复次数。如果你设置为1,JMeter将你的测试只运行一次。 要让JMeter不断的运行,你要选择\永远\这个复选框。
经过实践这里的loop count指的是要测试执行的总次数。初始默认为1,表示总共只执行一次。
11. 逻辑控制器
1、 foreach控制器
输入变量前缀、输出变量名称 2、 如果(if)控制器
条件符合时执行控制的子节点内容
示例:判断${is_run}=1是否成立,如果成立就执行http请求;复选框“evaluate for all children?“表示是否对所有子节点使用判断条件,不选择的话,只对第一个子节点生效。无else判断,可以用非条件来实现。 3、 Include controller
Include test plan 上传一文件 4、 交替控制器
忽略资控制器块 5、 简单控制器
起到划分清晰的作用,对录制的脚本有层次感。 6、 循环控制器
默认下的sept为循环控制器。 7、 模块控制器
设置指向要运行的逻辑控制器 8、 仅一次控制器
这个逻辑控制器与简单逻辑控制器很相同,里面没有任何设置。 9、 随机控制器
随机执行某一个子节点内容
这个逻辑控制器与交替控制器设置很相同。
当复选框“忽略控制器块”未勾选时,简单控制器是作为一个节点跟其它随机控制器子 节点一起参与随机执行;勾选时,简 单控制器下的子节点直接参与其它随机控制器子节点一起参与随机执行。??
10、 随机顺序控制器
里面没有任何设置与仅一次控制器很相同。 11、 Runtime controller
运行时间控制器? 12、 Switch controller
只有一个swtich value 13、 吞吐量控制器? 14、 事务控制器? 15、 While controller? 16、 录制控制器
录制控制器与简单逻辑控制器很相同。
12. 设置思考时间
在脚本中添加“定时器“—>”固定定时器“
(请求之间的间隔时间)设定延迟时间。
13. 设置集合点
在脚本中添加“定时器“?”synchronizing timer“
设置集合点处的并发用户数,即“多少“个用户达到集合点后再执行。
14. 定时器
1、 Beanshell timer
2、Constant throughput timer 3、synchronizing Timer 4、固定定时器 5、高斯随机定时器
6、Uniform random Timer
15. 配置元件
1、 csv data set config 2、 random variable 3、 用户定义的变量