X1-X5是负载模拟的一个过程,使用这些组件来完成负载的模拟
Y1:包含的是负载模拟部分,负载模拟用户请求
Y2:结果验证部分,负责验证结果正确性
Z:负载结果的收集。监听器不仅可以放在线程组之内,也可以放在线程组之外
1、X1 取样器
概念:取样器(采样器)用来模拟用户操作,向服务器发出http请求,webservice请求或者java请求等。(脚本,主要进行脚本的控制)
访问路径:测试计划→线程组→Sample
2、X1 断言
概念:断言用来验证结果是否正确。loadrunner中称之为检查点
访问路径:测试计划→断言
3、X1监听器
概念:测试结果需要添加监听器来收集
监听器有两个任务:
(1)添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用
(2)展示结果,以表格及图形的形式展现结果,方便测试人员分析测试结果。
访问路径:测试计划→监听器
注意:“查看结果树”一般只在调试中使用,正式测试需要去掉(因为耗IO),改为使用聚合报告
4、X2 前置处理器
概念:测试脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作
访问路径:测试计划→前置处理器
5、X2 配置元件
概念:性能测试中为了模拟大量用户操作我们往往需要做参数化,jmeter的参数化可以通过配置元件来完成,比如CSV/DATA/SET/CONFIG,它可以帮助我们从文件中读取测试数据。
访问路径:测试计划→配置元件
6、X2 后置处理器
概念:后置处理器一般放在取样器之后,用来处理服务器的返回结果。比如web应用服务的SessionID
后置处理器就是专门用来对相应数据做处理的元件,JMeter的关联就是通过后置处理器来完成的。
访问路径:测试计划→后置处理器
7、X3 逻辑控制器
概念:控制器用来完成我们的各种需求
访问路径:测试计划→线程组→逻辑控制器
8、X4 定时器
概念:为了足够真实的模拟用户负载,我们会需要模拟这些请求在同一时刻发送。定时器还有很多其他不同的功能
访问路径:测试计划→线程组→定时器
9、X5 线程组
概念:性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个工作的,在此元件中我们可以设置运行的线程数(就是模拟多少用户、一线程一用户),还可以设置运行时长、定时运行等。另外第三方插件(JMeter Plugin)的扩展也让JMeter的场景设计更加丰富(场景设置)
访问路径:测试计划→Threads(users)
线程数:一共多少用户,对我们被测系统进行访问
Ramp-Up Period(in seconds):加压策略, 表示每个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 如果我设置为0秒,则表示立即启动所有用户。
循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去, 是为了方便调度器的调用。
调度器
持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。
启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。
启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。
结束时间:与启动时间对应,表示脚本结束运行的时间。
注意:如果我们需要用到调度器来设定持续时间,如果线程数不够多到持续时间结束,我们就必须将循环次数勾选为永远,特别地,如果线程组里面有其他的循环,我们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,需要将永远勾选),否则,按我如上配置,将永远去掉勾选,文本里填1,那么无论你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会停止不再运行。
10、Test Fragment
概念:它是一个辅助的组件,在此节点下几乎可以放置任何JMeter测试组件,但它一般不会被运行。他的作用如下
(1)在脚本开发过程中可以用来备份元件
(2)TestFragment下的元件可以被模块控制器调用,我们可以利用它来模块化请求(把一个业务封装成一个方法供复用)供模块控制器调用
访问路径:测试计划→Test Fragment
11、工作台
概念:它也不能直接参与运行,他的功能有:
(1)在运用JMeter录制http协议脚本时就用到他,我们可以在它下面建立一个http代理服务器原件,设置代理信息然后进行录制
访问路径:工作台→添加→非测试元件
(2)设置服务器监控(HTTP Mirror Server)
(3)显示当前JMeter属性信息
(4)备份脚本,特别是我们在脚本调试过程中可以把它作为一个元件暂存区
访问路径:工作台