最近有个需求,要求在23:57打一批委托单,考虑到人工执行jmx脚本不方便,于是就想有没有什么脚本可以定时自动执行jmx脚本。最后在网上找到一篇介绍windows系统使用定时任务启动jmx脚本的方法,在这里记录一下,方便以后使用。
1、首先就是编辑jmx脚本以后保存好,jmx脚本可以使用命令行执行,这里将命令行指令保存为 .bat 文件放到jmeter的bin目录。
jmeter -n -t D:\temp\zl_test\apache-jmeter-4.0\bin\xiadan.jmx -l D:\temp\zl_test\apache-jmeter-4.0\result\result.csv -j D:\temp\zl_test\apache-jmeter-4.0\result\result.log -e -o D:\temp\zl_test\apache-jmeter-4.0\report
▶- n:使用 NoGUI模式执行jmeter脚本
▶- t:Jmeter脚本文件所在位置,建议使用绝对路径,使用相对路径,要注意cmd命令执行目录
▶- l:测试结果生成路径,路径目录不会自动生产
▶- j:日志生成路径,同上
▶- e:生成报告,同上
▶- o:测试报告生成目录,目录必须为空或不存在
2、第二步,就可以用定时任务命令行schtasks创建一个定时任务来执行jmx脚本了。
schtasks /create /tn qqtMidServerTest /tr D:\temp\zl_test\apache-jmeter-4.0\bin\QQT_MidServer_test.bat /sc once /st 23:57 /sd 2021/11/12
▷/create:表示创建定时任务;/delete:表示删除定时任务;/query:查表示询定时任务(查询时可能报错,执行chcp437)
▷/tn:定时任务名称
▷/tr:接该定时任务需要执行的命令(.bat)
▷/sc:执行任务频率,有once、minute、hourly、daily、weekly、onstart、onlogon、onidle、onevent
▷/st:开始时间(格式××:××);/et:结束时间
▷/sd:开始日期(格式××××/××/××);/ed:结束日期
Linux系统可以用crontab命令创建,命令使用可以用man crontab查询。
3、最后定时任务在启动jmx脚本的时候失败了,需要设置jmeter环境变量。
●创建环境变量JMETER_HOME=D:\apache-jmetes\apache-jmeter-4.0 (jmeter的目录)
●在用系统变量path后面加上%JMETER_HOME%\bin
●CLASSPATH=%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar;