JMeter-给容器版jmeter,添加定时执行任务的shell脚本

一、背景

构建的容器版JMeter,每次执行必须手动进入容器后,输入命令行执行脚本,希望能够定时执行脚本,不需要每次手动执行;

二、实现步骤

(1)创建start.sh作为脚本执行文件

touch start.sh

(2)编辑start.sh文件

vim start.sh

(3)在start.sh文件输入脚本内容

#!/bin/sh
echo "$(date +"%Y-%m-%d %T") 执行一次!" >>/root/Jmeter/test.txt
echo "进入Jmeter容器"
#将jmeter容器ID定义为参数
my_container="0253a969b5dc"
#output为存放执行结果的文件夹,每次执行脚本前需清空
docker exec $my_container /bin/sh -c 'echo "删除output文件夹"'
docker exec $my_container /bin/sh -c 'rm -rf output/*'
docker exec $my_container /bin/sh -c 'echo "执行脚本"'
docker exec $my_container /bin/sh -c 'jmeter -n -t jmx/compare1.jmx -l output/result.jtl -Jthreads=1 -JrampUpTime=1 -Jcycles=1 -e -o  output'

注:查询jmeter容器id(容器停机并新启动后,容器ID会改变)

docker ps | grep jmeter

(4)给start.sh添加执行权限

chmod +x start.sh

(5)试运行

./start.sh

执行结果:
在这里插入图片描述
(6)进入定时任务配置文件

vim /etc/crontab

(7)定时任务配置文件中,末尾加上给start.sh文件添加定时执行规则

#root用户,每分钟执行一次start.sh脚本
*/1 * * * * root /root/Jmeter/start.sh

注:在线Cron表达式生成器https://cron.qqe2.com/

(8)重启crontab生效

/bin/systemctl restart crond.service

注:其他涉及的命令

#查询crond定时任务服务状态,enable为启用,disable为禁用
systemctl is-enabled crond.service
#启用crond定时任务服务
systemctl enable crond.service
#禁用crond定时任务服务
systemctl disable crond.service

(9)查询执行结果
在这里插入图片描述
注:执行结果里有一些是调试时手动执行的结果;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值