一、Jmeter测试过程
- 在gui界面创建测试脚本
线程组->配置元件、取样器->前置处理器->定时器->后置处理器->断言->监听器
接口调试
- 通过【察看结果树】中的请求信息和响应信息
- 使用【调试取样器】
- jmeter结合fiddler抓包对比(没有接口文档时)
- 使用命令行执行Jmeter脚本,生成测试结果
二、JMeter 元组
线程组 TreadGroup:场景设置
逻辑控制器:控制Sampler取样器节点发送请求的逻辑顺序控制器,只对其子节点取样器有效
必须组件:测试计划、线程组、取样器(其他则是辅助组件)
作用域:辅助组件,作用于父组件、同级组件,以及同级组件下的所有组件
元件执行顺序:
测试计划中,默认设置,多线程组间是同时运行
- 配置元件(config elements)
- 前置处理器(pre-processors)
- 定时器(timers)
定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面)- 取样器(Sampler)
- 后置处理器(post- processors)
- 断言(assertions)
- 监听器(listeners)
聚合报告、察看结果数、用表格察看结果、图形结果
1. 线程组
setUp线程:在普通线程执行前执行,常用于用于测试准备,如创建测试用户
Teardown线程组:在普通线程执行后执行,常用于测试清理准备,如删除测试用户、退出登录。
线程数:虚拟用户数。
Ramp-Up时间:准备时长,需要多少时间启动全部线程数。若线程数为100,Ramp-Up准备时长为5,表示5秒钟启动100个线程,即每秒启动20个线程。
若Ramp-Up=0,表示瞬间加压,引起不正常的初始访问峰值,而不是因为平均访问率高,因此不建议;Ramp-Up时间设置越大,性能曲线越平缓,这样容易找到压测瓶颈点,但过大会降低访问峰值负载,导致实际并发量小于预期并发量。因此,确定一个合理的ramp-up时间,保证在最后一个线程启动的时候第一个线程仍未关闭,从而真正接近并发数。
Ramp-up Period说明
循环次数:每个线程发送请求次数。若线程数为20,循环5次,即每个线程发送5次请求,总请求数为20*5=100。
2. 动态参数处理
2.1 使用函数助手生成
生成后直接复制粘贴使用
2.2 使用CSV参数文件
从外部导入测试数据,即数据参数化
分别使用$ {taskType}、$ {taskName}、$ {businesscod