程序员简单易上手的性能压测工具-Jmeter

2021-08-24  本文已影响0人  名字是乱打的

之前部门有大佬做了压测工具Jmeter的使用报告,让我们开发人员也学了一波,自己也可以对本地和测试环境进行一波压测了,可以看到自己的服务各性能指标。
这里就不扯别的了,直接总结下如何用Jmeter对服务压测;
Jmeter下载

一.常用压测方法

1.1压测时,确定压测流量的方法一般为:

1、由运维/开发抓取一段时间内的流量高峰,然后由此确定接口的起始流量以及各个接口的所占压测流量比例。

2、根据单台服务器所能承受的压力,大致确定最大tps,逐步压到瓶颈;各个接口所占流量比例也可跟本次压测需求对应调整。

1.2目前常用的压测方法有:

二.常用压测方法详细操作

2.1并发测试

基础线程组(强调单位时间的并发, 不存在绝对并发),主要适用超卖超发(如多人同时抢一个或多个库存)以及瞬间流量的压力测试场景

2.2压力测试

持续不断地增加负载, 发现性能瓶颈以及压出业务承载能力(目前主要所用模式)。

压力测试按压测模型分为:

2.1.1吞吐量模式是目前压测的主要方式,目前可实现方式分为:

三、压测监控

目前服务端由运维同学监控,监控服务器端CPU利用率、内存使用、连接数等指标;

关于接口响应时间、tps、错误率等指标由测试监控(jmeter),另外目前部署了jmeter+influxdb+grafana监控,可以更方便/详细的查看各指标。

我们开发人员平常压测的时候呢看普罗米修斯的JVM监控大盘就搞定了,然后再看看数据库的压力。

四、总结

1、RPS模型适用于找出业务/服务器瓶颈及承受能力
2、RPS模型下的吞吐量控制、RPS控制均有缺点,如tps起伏大、大流量瞬间施压过大、线程组设置不准等;此模式目前可用Arrivals Thread Group方式解决
3、对于后续压测方向,期望往业务压测模型方向转,此模型可以更好的模拟用户操作,反应服务器真实承压能力以及系统所能承受的在线用户数。
4、对于有动态控制的需求,可以使用jmeter中的beanshell能力(9000端口)


5、对于高流量或瞬间高流量压测,由于jmeter可施压的线程数有限,可以使用分布式压测方案(已有方案储备);分布式测试时,本地jmeter作为控制机(master),其它机器做为执行机(slave)。master把脚本分发到每台slave上,slave执行脚本。执行完成后,slave再把结果返回给master,master负责收集所有slave的信息并汇总展示
上一篇 下一篇

猜你喜欢

热点阅读