脚本内容
# 压测脚本模板中设定的压测时间为 60秒
# 脚本的名字
export jmx_template="assets"
# 定义文件后缀
export suffix=".jmx"
# 获取到 jmx文件的名称
export jmx_template_filename="${jmx_template}${suffix}"
# 输出系统信息
export os_type=`uname`
# 需要在系统变量中定义 jmeter 根目录的位置,如下
export jmeter_path="D:\author\apache-jmeter-5.1\"
echo "自动化压测开始"
# 压测并发数列表
thread_number_array=(10 20 30 40)
for num in "${thread_number_array[@]}"
do
# 生成对应压测线程的jmx脚本
export jmx_filename="${jmx_template}_${num}${suffix}"
# 生成结果日志
export jtl_filename="test_${num}.jtl"
# 生成web报告
export web_report_path_name="web_${num}"
rm -f ${jmx_filename} ${jtl_filename}
rm -rf ${web_report_path_name}
cp ${jmx_template_filename} ${jmx_filename}
echo "生成jmx压测脚本 ${jmx_filename}"
if [[ "${os_type}" == "Darwin" ]]; then
sed -i "" "s/thread_num/${num}/g" ${jmx_filename}
else
sed -i "s/thread_num/${num}/g" ${jmx_filename}
fi
# jmeter 静默压测
${jmeter_path}/bin/jmeter -n -t ${jmx_filename} -l ${jtl_filename}
# 生成web 压测报告
${jmeter_path}/bin/jmeter -g ${jtl_filename} -e -o ${web_report_path_name}
rm -f ${jmx_filename} ${jtl_filename}
done
echo "自动化压测全部结束"
- sh 命令下报 49: assert_sh.sh: Syntax error: Unterminated quoted string 语法错误
Jaxon
(霍格沃兹-修然)
3
斜杆转义了,导致shell认为下面的内容不是代码导致的
楼上说的对,就是这一句。你的转义有问题
可以改成这样
export jmeter_path="D:\\author\\apache-jmeter-5.1\\"
或者用标准的git bash的路径 /d/author/apache-jmeter-5.1