-
JMeter组件图
-
组件介绍
- 负载模拟:负责模拟用户的请求。
- 如取样器有参数化的需求,可通过配置原件或前置处理器来完成。
- 如有关联需求,可通过后置处理器完成。
- 线程组用来设置运行场景,如模拟多少用户,运行多长时间。
- 定时器用来模拟用户并发场景。
- 控制器用来控制业务的执行逻辑,如单词登录等。
- 断言:验证结果的正确性。
- 监听器:负载结果的收集与展示。
- 负载模拟:负责模拟用户的请求。
-
取样器
- 模拟用户操作,向测试系统发出请求
- 如http请求、Web Sevice请求或者JDBC请求
- 如http请求元件发送http请求,接受服务器的响应数据
- 模拟用户操作,向测试系统发出请求
-
断言
- 断言是用来验证结果是否正确,用来判断请求是否成功返回且返回值是否符合要求。
- 即预设结果(值、表达式、时间长短)与实际结果匹配。
- 常见的断言有:响应断言、XML断言等
-
监听器
- JMeter测试结果需要添加监听器来收集
- 监听器功能
- 添加结果监听,保存测试结果到文件,结果数据可以再次分析使用
- 展示结果,可以图形及表格的形式展现结果,方便测试人员分析测试结果。
- 可以帮组调试,如开发测试计划时,查看结果树和响应数据。
-
前置处理器
- 取样器、断言与监听器组合在一起,就可以完成请求发送、验证结果及记录结果的过程
- 在测试脚本的过程中,请求发送之前可能会需要做环境或参数的准备工作,可以在前置处理器中完成这些操作。如:在对数据库进行操作前需要先链接数据库等。
-
配置元件
- 模拟用户操作过程中的参数化,比如CSV Data Set Config,可以从文件中读取测试数据,为取样器提供预备数据
- 记录服务器返回的数据,如Http Cache Manager,自动记录服务器返回的Cache信息
-
后置处理器
- 后置处理器一般放在取样器之后,用来处理服务器的返回结果
- 后置处理器是用来对响应数据做处理的元件,比如正则表达式提取器
前置处理器、后置处理器、配置元件,都是为取样器提供数据支持使用
-
逻辑控制器
- 确定取样器的处理顺序和逻辑控制等,如执行一次控制器,循环控制器,交替执行控制器等,来满足实际运行中的复杂需求
-
定时器
- 为了真实模拟用户的负载,有时需要模拟在什么时候以什么规律发送请求
- 比如在同一时刻并发访问某一服务器,JMeter中通过定时器来完成这个功能
-
线程组
- 性能测试需要模拟大量用户负载的情况,通过线程组来完成此工作
- 在线程组中,可以设置运行的线程数,即模拟的用户数,还可以设置运行时长和循环次数等
-
JMeter运行原理
- JMeter通过线程组来驱动多个线程运行测试脚本对被测试服务器发起负载
- 负载机上可以运行多个线程组,JMeter运行场景可以在GUI方式下运行,也可以在非GUI方式下运行,非GUI(命令行)对负载机的资源消耗更小
- JMeter中取样器,断言和监听器组合在一起就可以完成请求发送、验证结果及记录结果过程
- JMeter可以运行在远程控制模式,即分布式负载模式