本文主要是介绍Jmeter系列--控制器Controllers:【取样器Samplers、逻辑控制器Logic Controllers】、监听器Listeners......所有的入门【详细有链接】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
线程组下不同组件的执行优先级/顺序
- 配置元件、监听器
- 前置处理器
- 定时器
- 逻辑控制器
- 取样器
- 后置处理器
- 断言
取样器执行顺序
在没有逻辑控制器情况下,取样器是按从上往下的顺序执行的
Controllers
Jmeter有两种类型的控制器:Samplers(取样器)和Logical Controllers(逻辑控制器);
- 控制器是为了控制取样器的执行条件
Samplers
- 取样器:让Jmeter 发送请求到服务器
- 取样器指示Jmeter向服务器发送请求并等待响应
- 多个取样器按照它们在树中出现的顺序运行
- 取样器 + 控制器可以修改取样器的执行次数
Jmeter自带的取样器
- FTP Request
- HTTP Request (can be used for SOAP or REST Webservice also)
- JDBC Request
- Java object request
- JMS request
- JUnit Test request
- LDAP Request
- Mail request
- OS Process request
- TCP request
============================================================================================================================================================================================================================================================================================================================================================================================================================
Samplers 的特性
- 每个取样器都有几个可以设置的属性
- 也可以向测试计划或线程组中添加多个Config Element(配置元件)来更进一步自定义取样器
- 最后,要在测试计划中添加一个Listener(监听器),以便查看请求结果,或存储结果到磁盘
- 备注:上面说到的配置元件和监听器,在后面文章都会详解哦!这里就提一下
栗子一:添加HTTP请求默认值配置元件【 HTTP 头部管理、cookie管理、缓存管理、请求默认值】
如果要发送多个相同类型的请求(如:HTTP请求)到同一服务器,可以考虑抽取公共HTTP信息
栗子二:添加断言
在对Web应用程序进行压力测试时,服务器可能返回成功的响应代码,也可能返回失败的响应代码;添加断言可以检查请求的响应是否符合预期
以后会对所有的取样器 进行讲解【跳转链接: 】
============================================================================================================================================================================================================================================================================================================================================================================================================================
Logic Controllers
- 逻辑控制器:可以自定义决定发送请求的时机的逻辑
Logic Controllers的简介
- 逻辑控制器可以自定义决定发送请求的时机的逻辑
- 还可以更改其子元件的请求的顺序
- 逻辑控制器可以组合使用,然后获取不同的结果
逻辑控制器的栗子 【仅一次控制器】
在平时无论是做压力测试还是接口自动化测试中,我们的登录请求一般都只需要执行一次,获取到token即可;
而仅一次控制器刚好可以满足这个需求 【其实 就和接口自动化中 pytest中conftest.py中的 获取token一样】
有什么逻辑控制器
以后会对所有的逻辑控制器 进行讲解【跳转链接: 】
============================================================================================================================================================================================================================================================================================================================================================================================================================
Listeners
监听器提供了在Jmeter运行时,收集运行信息的权利
常见的监听器
- Graph Results : 在图表上绘制响应时间
- View Result Tree:最常用的查看结果树,显示Samplers请求和响应的详细信息,可以通过多种格式显示(如:HTML、XML)
- 其他监听器提供摘要或聚合信息
保存数据到本地
- 每个监听器都可以将收集到的数据保存到指定文件
- 可以指定要保持的字段,以及文件的格式(CSV还是XML文件)
重点注意
- 所有监听器拿到的结果数据都是一致的,唯一区别就是数据的显示方式,不同监听器,显示方式都不一样
- 监听器可以添加到任何位置包括测试计划、线程组、取样器等地方,它们会收集同级别下的数据和所有子元件的数据
有什么监听器
jmeter 默认有的监听器还是比较少的,但是想做好性能测试,装一些监听器插件必不可少啊
以后会对所有的 监听器 进行讲解【跳转链接: 】
============================================================================================================================================================================================================================================================================================================================================================================================================================
前置处理器
- 在发出取样器请求前执行一些操作
- 用的比较多的是:设置一些参数、修改取样器的设置、脚本预处理
有什么前置处理器
后置处理器
- 在取样器请求发出后执行一些操作
- 用的比较多的是:处理响应数据,提取某个值
有什么后置处理器
以后会对所有的 前置、后置 进行讲解【跳转链接: 】
============================================================================================================================================================================================================================================================================================================================================================================================================================
断言
- 可以断言服务器的响应内容
- 在性能测试脚本中使用断言,一般是为了调试脚本
- 在接口自动化测试中使用断言,一般是为了严谨的校验接口响应内容是否符合预期
断言成功与否
- 断言成功与否,可以通过监听器-断言结果查看
- 如果断言失败,则将此请求标记为失败,还会显示在察看结果树中,错误率会显示在聚合报告中
添加断言
- 可以将断言添加到任何取样器,只作用于当前取样器
- 如果断言是在线程组下,那么会作用于线程组下的所有取样器
性能测试中是否应该使用断言
大多数情况下不可以使用断言,因为断言不仅会增加响应时间,拉低最终的结果值,还会占用系统资源
有什么断言
以后会对所有的 断言 进行讲解【跳转链接: 】
============================================================================================================================================================================================================================================================================================================================================================================================================================
定时器Timers
不使用定时器时
- Jmeter 线程将按顺序执行各个取样器而不会中途暂停
- Jmeter 可能会在很短时间内发出过多请求,从而使服务器不堪重负
使用定时器时
- 可以在取样器下添加定时器,这样定时器只会作用于当前取样器
- 也可以在线程组下添加多个定时器,统计定时器的总和,然后作用于线程组下的所有取样器
有什么定时器
以后会对所有的 定时器 进行讲解【跳转链接: 】
============================================================================================================================================================================================================================================================================================================================================================================================================================
配置元件介绍
- 配置元件和取样器的关系十分紧密
- 比如说常用的:HTTP默认值,设置数据库连接,FTP连接等
有什么配置元件
以后会对所有的 配置元件 进行讲解【跳转链接: 】
这篇关于Jmeter系列--控制器Controllers:【取样器Samplers、逻辑控制器Logic Controllers】、监听器Listeners......所有的入门【详细有链接】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!