一般情况下,linux命令执行,会打印相应的日志,基于此,考虑通过对日志文件的监控,确认linux命令执行是否结束。
例子:监控jmeter日志,当jmeter日志不再打印(即为jmeter执行完毕),然后执行ant命令,生成jmeter测试报告
#!/bin/sh
#监控jmeter.log日志,当日志不再打印,日志文件大小不变,然后执行ant命令
cd /opt/jmeter/apache-jmeter-2.7/bin
size=ll |grep "jmeter.log"|awk '{print $5}'
for((;;))
do
#设置等待时间,预估你的上游命令会执行多久,相应多一小段时间即可
sleep 30s
size_temp=ll |grep "jmeter.log"|awk '{print $5}'
if [ $size -eq $size_temp ];then
cd /opt/jmeter/apache-jmeter-2.7/jmx/
ant
exit 0
else size=$size_temp
fi
done
步骤:执行jmeter命令,需要后台执行,如:sh jmeter -n -t ../jmx/brandas接口测试.jmx -l ../report/jtl/testReport.jtl &,linux命令最后加“&”,表示该进程在后台运行;
然后执行上边的脚本命令即可,ant命令在jmeter命令执行完成后执行(这里的ant命令用于生成jmeter报告)。
注:单独监控linux命令执行情况,也可以使用类似的思路。