jmeter+nmon+crontab简单的执行接口定时压测
一.概述
临时接到任务要对系统的接口进行压测,上面的要求就是:压测,并发2000
在不熟悉系统的情况下,按目前的需求,需要做的步骤:
- 需要有接口脚本
- 需要能监控系统性能
- 需要能定时执行脚本
二.观察
>针对第一点:接口脚本
需要观察系统接口的情况:
- 系统使用swagger文档编辑接口,这很好,可以直接引用
- 系统内关联接口熟悉,将需要的参数设置成变量以便调用
- 系统内的接口返回状态很规范,可以直接判断code&message
综上,为了效率,选择现存的开源工具执行(针对该开源工具的要就是可以使用命令行执行:jmeter)【备注:因为要定时执行】
>针对第二点:监控系统性能
观察系统服务器:
- 系统为Linux
- Linux上的监控工具很多,要求是可以输出到文件并可对该文件进行分析
- 或者,可以自己编写shell脚本监控获取信息,比如:top【为了效率,选择一款自主搭配即可(当前选择:nmon)】
>针对第三点:定时执行脚本
观察脚本即将存放并执行的系统
- Linux系统自带crontab命令可执行定时任务
三.编写
> 编写步骤:
1.使用jmeter编写接口脚本,并增加压测线程数,并编写启动脚本:StartJmx.sh
source /etc/profile
rm -rf ****.jtl
/绝对路径/jmeter -n -t /绝对路径/debugTest.jmx -l /绝对路径/****.jtl
sleep 10
nmonpid=`ps -ef | grep nmon | awk '{print $2}'`
kill -9 ${nmonpid}
2.服务器上安装nmon,并编写启动脚本:StartNmon.sh
#每5秒采集一次,采集120次,共10分钟的数据
nohup nmon -f -T -s 5 -c 120 -m /绝对路径文件夹 & echo $! > nmonpid
3.编写定时脚本
0 15 * * * sh /绝对路径/StartNmon.sh 0 15 * * * sh /绝对路径/StartJmx.sh
四.综述
>以上除开jmeter脚本编写,其他编写时间不超过1小时
- 当任务来临的时候,不要慌张不要拒绝,先和对接人沟通相应的事宜,明确需求
- 需求明确之后,请思考实现方式,方式总是多种多样的,或请教前辈或上网求解
- 临时任务的重点均在于效率,这个前置条件给出的宽裕就是:你不需要把方案做的很完美,能得出结论即可
- 方案可后续再改良~
作者:Vsky
出处:https://www.cnblogs.com/VVsky/
交流群:636090586(备注博客园)
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果喜欢我的文章,请关注我的公众号