失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > jmeter接口性能测试实例

jmeter接口性能测试实例

时间:2020-07-04 00:19:30

相关推荐

jmeter接口性能测试实例

一、写在前面

前段时间公司安排我对微服务算法接口做一个性能测试,好吧!做就做,以前没有真实性做过性能测试,所以在做测试的时候是一边学习一边测试,网上很多关于性能测试的教程,但是基本上都是一些理论上的知识,实际上最重要的分析也没有说过自己也是摸不到头脑,希望大家在看的时候能够有自己的理解,和对文章不足的地方指正。

二、项目架构

由于整个系统还在开发阶段,具体采用什么样的架构还要等到最后完成的时候才可以定,但是现在的话采用的是腾讯云Linux+Redis+nginx,当然还有docker,到底用不用docker要根据以后的性能来决定了。在做性能测试之前你一定要了解整个项目的架构,方便分析性能的瓶颈在何处,所以我在这个地方是根据开发和运维的分析确定瓶颈在什么地方。

三、工具的选择

性能测试工具:jmeter、xshell

服务器性能监测工具:nmon、

压力测试机:腾讯云Windows(Windows)、16G、64位

网络带宽:20M

四、策略分析

接口调试

这个接口是post请求,参数以json格式传递,所以要在HTTP请求前面加上一个HTTP请求头管理器的配置元件

结果

发送成功,接下来修改线程组参数

1、 线程数:可以理解为虚拟用户数

2、 Ramp-up-period:延时设置,0表示立即启动,1表示1S内启动多少个线程数,这里最好不要设置成0,在较大线程数的时候,导致起始TPS异常低

3、 循环次数:1就是只进行一次

4、 持续时间:压测的时间

我在这里设置的是线程数分别为50/100/500/800/1500,延时设置为1,循环次数勾选永远,表示1秒内发送50/100/500/800/1500个线程数,持续时间600s,压测10分钟

五、服务器监测

1、下载nmon文件,/pmwiki.php;

2、查看Linux服务器配置

uname -a # 查看内核/操作系统/CPU信息

head -n 1 /etc/issue # 查看操作系统版本

cat /proc/cpuinfo # 查看CPU信息

hostname # 查看计算机名

free -m # 查看内存使用量和交换区使用量

3、将nmon文件上传到服务器

rz命令会直接弹出文件选择框,如果安装有xshell的话

解压nmon文件:tar zxvf 文件名

一定要先查看Linux服务器的配置,下载相应的文件

在执行nmon文件时,记得添加执行权限chmod +x ./nmon(这里我把需要的shell文件保留,删除了不需要的)

执行./nmon可以看到Linux性能的实时情况

在启动jmeter时,同时执行./nmon -f -c -s 每隔5S监测10分钟(我压测的是10分钟)所以./nmon -f –c 120 -s5

执行完毕需要下载nmon解析文件:

/developerworks/wikis/display/Wikiptype/nmonanalyser

六、执行结果

Tps图这里只作为参考

聚合报告

在聚合报告没有报错的情况下troughput可以作为TPS的参考值,网上说的什么什么计算公式,估计自己也搞不清楚,所以这里大家记得,你不知道怎么算的时候就直接问项目组,这个项目要达到的性能指标是多少,再进行优化,毕竟不是每个公司都像BBA那样有专门的团队来支撑性能测试,做性能测试的成本很高。

Nmon监控

CPU

剩余内存

I/O读写

在本次测试活动中压测脚本经过无数次修改、调试、最终确定性能测试瓶颈在Redis,测试不止要测试,还要找出问题的原因。我在这里可能就是理解不够深入,在运维协助下确定性能瓶颈,毕竟软件本身没哟报错,日志没有报错,jmeter执行脚本也没有报错,查看nginx服务器压力也没有问题,唯独Redis服务器cup使用率非常高,连接数只有1024个,而我最大设置的线程数1500个,所以后面的就没有直接使用连接数,而是等待其他完成后再进行连接。

如果觉得《jmeter接口性能测试实例》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。