一、Jmeter 运行原理:
- Jmeter 时以线程的方式来运行的(由于Jmeter 是 java 开发的所以是运行在 JVM 虚拟机上的,java 也是支持多线程的)
二、Jmeter 结构体系
1.线程组
- 性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个任务的,在线程组中我们可以设置运行的线程数(用户数),运行时长,循环次数等
2.逻辑控制器
- 控制循环次数等
3.配置元件
- 性能测试过程中为了模拟大量用户操作我们需要做参数化,那么 Jmeter 参数化就可以通过配置元件来完成,另外 Jmeter 也提供了众多的函数(函数对话框),来帮助我们生成动态的数据
4.定时器(集合点)
- 为了足够真实的模拟用户负载,我们有时会需要模拟这些请求在同一时刻发送,就好像把大家集合在一条起跑线上同时起跑,那么我们就需要一个集合的功能
5.前置处理器
- 在脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作,如对数据库操作前需要先建立数据库连接或者使用"用户参数"对用户账号密码参数化
6.取样器 smapler
- 用来模拟用户操作,向服务器(被测系统)发出 http 等请求
7.后置处理器
- 后置处理器一般放在取样器后,用来处理服务器返回的结果
8.断言(检查点)
- 用来验证结果是否正确,用一个预设的结果与实际结果匹配
9.监听器
- 测试结果需要添加监听器来收集
- 添加监听器,可以保存结果到文件,结果可以供再次分析使用
- 展示结果,可以以表格及图形的形式展示结果,方便测试人员分析结果
三、Jmeter 元件运行顺序
- 配置元件
- 元件会影响其作用范围内的所有元件
- 前置处理器
- 元件在其作用范围内的每一个 sampler 元件之前执行
- 定时器
- 元件对其作用范围内的每一个 sampler 有效
- 取样器 sampler
- 后置处理器
- 元件在其作用范围内的每一个 sampler 元件之后执行
- 断言
- 元件对其作用范围内的每一个 sampler 元件执行后的结果执行校验
- 监听器
- 元件收集其作用范围的每一个 sampler元件的信息并呈现