jmeter如何做性能测试:完整实操流程
jmeter如何做性能测试,整套流程分为测试计划搭建、脚本录制与调试、压力配置、分布式施压、执行监控、结果分析这几个环节,适合掌握基础接口知识、能够看懂响应码的测试人员,不适合完全不懂接口协议、无法定位服务基础报错的新手直接上手高并发压测,你可以先搭建线程组配置并发量级,用HTTP请求组件录入接口,搭配断言检查返回内容,设置监听器采集响应时间与错误率,最后调整阶梯式并发找到服务的承载上限,同时做好服务器侧指标采集,区分网络瓶颈、数据库瓶颈和应用层瓶颈。
jmeter如何做性能测试脚本准备
打开软件新建测试计划,在线程组下添加HTTP请求默认值,统一填写目标服务器地址与端口,减少后续重复录入。录制脚本优先使用HTTP(S)测试脚本录制器,配置浏览器代理,开启捕获HTTP请求,过滤静态资源,图片、样式表、脚本文件这类静态内容如果不在压测目标内,可以直接排除,降低脚本冗余。录制完成后,把固定参数替换成变量,使用用户定义变量组件存放地址、账号等内容,后续修改参数不用逐个改动请求。
做好参数化,选用CSV数据集配置元件读取外部文件,每行存放一组账号或者查询参数,设置循环读取方式,避免大量并发请求使用同一组参数引发业务拦截。添加响应断言,设定预期返回文本或者状态码,断言失败的请求会被标记,方便后续统计错误请求占比。你不要直接复制浏览器请求头,只保留业务必需的请求头,多余的头信息会增加解析开销,曾经有人把全部浏览器头原样放进请求,压测时出现大量随机失败,排查后确认是多余缓存头导致服务识别异常。
jmeter如何做性能测试压力配置
线程组决定并发模型,线程就是虚拟用户,每个线程独立循环发送请求。线程组有三种主流类型,对应不同测试目标,对比信息放在下方表格。
| 线程组类型 | 适用场景 | 核心参数 |
|---|---|---|
| 基础线程组 | 稳定并发负载测试 | 线程数量,循环次数 |
| 阶梯线程组 | 逐步加压寻找峰值 | 起始并发,递增步长,持续时长 |
| 吞吐量线程组 | 固定TPS压测 | 目标吞吐量,控制时长 |
加压节奏要平缓,短时间瞬间拉起上万线程容易让本机先出现资源瓶颈,本机CPU、内存耗尽之后,拿到的压测数据没有参考价值。本机压测时,单台机器一般不建议把并发拉到一千五百以上,如果需要更大并发,启用远程分布式压测,多台压力机协同发送请求。远程模式需要保证所有压力机使用同一个版本,防火墙放行对应端口,主控机推送脚本,统一控制启动和停止。
jmeter如何做性能测试执行与监控
执行之前,关闭图形界面里的查看结果树这类消耗资源的监听器,图形监听器只适合调试脚本,正式压测只保留摘要报告、聚合报告。聚合报告会输出平均响应时间、90分位响应时间、TPS、错误率,是最常用的输出。你可以把结果写入jtl文件,压测结束之后再导入报告查看,降低施压阶段的资源占用。
监控不能只看压测客户端的数据。服务端需要采集CPU、内存、磁盘IO、网络带宽,数据库采集连接数、慢查询、锁等待,中间件采集连接池占用情况。当错误率持续上升,而响应时间同步拉长,大概率是后端服务出现瓶颈;响应时间平稳但TPS不再上涨,代表系统到达吞吐上限。
设定停止规则。错误率超过预设阈值,或者平均响应时间突破业务可接受上限,就停止施压,持续加压只会放大异常,不会拿到有效承载数据。业务常用的可接受标准,一般是90分位响应时间低于业务约定值,错误率维持在很低水平。
整理报告,把并发数、TPS、各分位响应时间、服务器资源曲线放在一起,标注瓶颈位置和推荐优化方向。同一个场景至少重复执行三轮,剔除偶然波动带来的异常数据,取稳定阶段的数据作为最终结论。
压测目标不同,判断标准不一样。
- 负载测试,逐步增加并发找到稳定运行的最大吞吐
- 压力测试,持续拉高并发观察系统崩溃节点
- 耐久测试,长时间固定并发验证内存泄漏情况
该整套操作的适用边界是面向HTTP、HTTPS接口,对于私有TCP协议、自定义二进制协议,原生组件支持有限,需要自行开发或者引入第三方插件完成请求封装。
