JMETER 各组件执行顺序与作用域
- 配置元件:
配置元件的作用主要为了初始化默认值和变量,以便后续采样器引用。相对于JAVA 语言中间定义一些常量和静态变量。配置元件作用域是最初始阶段处理,配置元件仅对其所在的测试树分支有效,在同一个作用域的任何采样器前,同时,线程组A中间定义了配置元件中间的用户定义变量,线程组同样可以引用该变量,所以,配置元件的作用域是可以跨线程组的。
2)前置处理器:
前置处理器和后置处理器是相对应的,只是前置处理器会在采样器发出请求之前做一些特殊操作。
3) 定时器:
定时器是为了模拟用户操作习惯,每发送一个请求之前等待一个固定时长,如果不设定这种定时器,可能会在短时间内产生大量访问请求,造成服务器压力过大,假设线程组添加了多个定时器,那么,为几个定时器的总时长,同时影响作用域范围内的采样器。定时器作用只影响作用域内的采样器。
4) sampler(采样器):
sampler(采样器) 是真正干活的家伙,通过sampler(采样器) 对服务器发送请求,同时等待服务器响应。如果采样器没有添加逻辑控制器,采样器会按照测试树中间的顺序进行执行。
5)后置处理器:
有时候在测试过程中间需要把服务器响应的数据作为下一个采样器中间的参数,所以,就需要用到后置处理器组件,后置处理器会在采样器发出请求之后做一些特殊操作。如果后置处理器附着在某个采样器之下,那么它只会在该采样器运行之后执行。
6)断言---Assertions:
在JMETER 性能测试过程中间,为了检查测试中得到的响应内容是否跟预期一致,所以,今天讲解一个新的组件断言,英文名称(Assertion),它的作用和loadrunner中的检查点类似。
7)监听器---Listener:
监听器是采样器运行结果以图表的形式显示出来,常用的监听器有“察看结果树”、“聚合报告”、“图形结果”等等。JMETER 的监听器图形结果跟LoadRunner 有一定的差距。
8) 逻辑控制器---Controller:
逻辑控制器可以帮助用户控制JMeter的测试逻辑,特别是何时发送请求。逻辑控制器可以改变其子测试元件的请求执行顺序。
二、组件执行顺序:
测试计划的组件执行顺序,具体执行顺序如下:
- 配置元件
- 前置处理器
- 定时器
- 采样器
- 后置处理器
- 断言
- 监听器
三、组件作用域:
作用域的原则是:
- 采样器:采样器是独立的,不存在作用域问题。
- 配置元件:配置元件定义变量,可以为测试计划下面的所有线程组中间的采样器共享。
- 实例操作:
实例一
同一个测试计划中间新建两个线程组名称为线程组1和线程组2,线程组1下面新增配置元件用户定义变量,验证变量作用域是否在线程组2中间也可以引用该变量。(实例中间的Debug Sampler 采样器是为了调试用,操作过程中间非必选项)
1、新建一个线程组1
线程组1 右键---> sample-->Debug Sampler
- 线程组1 右键--->配置元件--用户定义的变量,变量名称为name,变量值为:JAMES;
- 线程组1右键--->sampler -->HTTP 请求,服务器名称或IP:www.baidu.com,Parameter 参数名称为:name,参数值引用用户自定义的变量${name};
- 线程组1 右键--->监听器--->察看结果树,运行,查看请求中间的参数
5、新建一个线程组2
线程组2 右键---> sample-->Debug Sampler
- 线程组2右键--->sampler -->HTTP 请求,服务器名称或IP:www.baidu.com,Parameter 参数名称为:name,参数值引用用户自定义的变量${name};
- 线程组2 右键--->监听器--->察看结果树,运行,查看请求中间的参数
- 添加两个线程组之后,运行,我们看一下每一个采样器中间运行的结果,线程组1中间察看结果树请求:http://www.baidu.com/?name=JAMES,请求中间name 参数中间引用用户定义的变量的值。线程组2 中间察看结果树请求:http://www.baidu.com/?name=JAMES 请求中间name 参数中间也引用用户定义的变量的值
实例二:
在采样器中间添加一个配置元件,同一个线程组中间其他的采样器是否能够共享配置元件中间的变量。
- 线程组右键-->sample-->HTTP 请求,服务器名称或IP:www.baidu.com,Parameters 定义一个参数名称为:userame 值引用配置元件中间的用户定义的变量${name}
- one 采样器右键--->配置元件-->用户定义的变量,添加一个变量,变量名称为:name 变量值为:KOBE
- 线程组右键-->sample--->Debug Sampler 这一次添加时采样器中间Debug Sampler,名字为:two
- 线程组右键-->sample--->Debug Sampler 名字为:three
- 添加一个察看结果树的监听器,查看运行的结果,one 请求username 参数能够正常读取用户定义的变量值,two 中间的响应数据:name=KOBE,three 中间的响应数据:name=KOBE
通过上面的例子:在one 采样器子节点定义的用户变量,在two 和 three debug sampler处都能正常引用
备注:
本次课程是主要讲解Jmeter 各组件的执行顺序和作用域,由于在JMETER 中间相当重要,同时,在很多面试的过程中间都会问到这一块的内容。为了加深大家对配置元件作用域的理解,例子中间提到用户定义的变量、Debug Sampler HTTP 请求采样器,大家只要按照上面例子操作即可,后续课程还会重点讲解配置元件和采样器方面的知识。
如果你觉的文章阅读不过瘾,可以查看详细的视频教程
【软件测试全栈系列课程】请点击我哦…
https://edu.51cto.com/course/25359.html
【博主完整视频课程系列】请点击我哦…
https://edu.51cto.com/lecturer/13226632.html
【JMETER基础和实践课程】请点击我哦…
https://edu.51cto.com/course/28017.html
【JMETER 性能测试基础与项目实战视频课程】请点击我哦…
https://edu.51cto.com/course/16055.html
【Jmeter+ant+jenkins接口层性能与自动化测试课程】请点击我哦…
https://edu.51cto.com/course/19323.html
【零基础新手入门软件测试基础课程】请点击我哦…
https://edu.51cto.com/course/27846.html
【软件测试之移动端测试系列课程】请点击我哦…
https://edu.51cto.com/course/26878.html
【Fiddler接口抓包神器使用教程】请点击我哦…