上節課愛畫漫畫的小哥哥用漫畫形式向你們展現了JMeter的進階用法:如何搭建InfluxDB,使用更炫酷的Grafana。
java
看到不少小夥伴以爲看的不過癮,在強烈的催促下,小哥哥的新文章又出來了。此次小哥哥又給咱們帶來怎樣的驚喜呢?接着看下去吧!linux
不一樣併發如何作壓測?git
無UI執行JMetergithub
jmeter -n -t <testplan filename> -l <listener filename>
複製代碼
nohup jmeter -n -t ${jmx_filename} -l ${jtl_filename} &複製代碼
用項目實戰來演示shell
export jmx_template="PreClassMenu_auto"
export suffix=".jmx"
export jmx_template_filename="${jmx_template}${suffix}"
export os_type=`uname`
複製代碼
#!/usr/bin/env bash
export jmx_template="PreClassMenu_auto"
export suffix=".jmx"
export jmx_template_filename="${jmx_template}${suffix}"
export os_type=`uname`
# 須要在系統變量中定義jmeter根目錄的位置,以下
# export jmeter_path="/your jmeter path/"
# 清空nohup.out
cat /dev/null > nohup.out
# 強制殺掉JMeter進程
killJMeter()
{
pid=`ps -ef|grep jmeter|grep java|awk '{print $2}'`
echo "jmeter Id list :$pid"
if [[ "$pid" = "" ]]
then
echo "no jmeter pid alive"
else
kill -9 $pid
fi
}
複製代碼
#!/usr/bin/env bash
export jmx_template="PreClassMenu_auto"
export suffix=".jmx"
export jmx_template_filename="${jmx_template}${suffix}"
export os_type=`uname`
# 須要在系統變量中定義jmeter根目錄的位置,以下
# export jmeter_path="/your jmeter path/"
# 清空nohup.out
cat /dev/null > nohup.out
# 強制殺掉JMeter進程
killJMeter()
{
pid=`ps -ef|grep jmeter|grep java|awk '{print $2}'`
echo "jmeter Id list :$pid"
if [[ "$pid" = "" ]]
then
echo "no jmeter pid alive"
else
kill -9 $pid
fi
}
thread_number_array=(10 20 30 40 50)
複製代碼
#!/usr/bin/env bash
export jmx_template="PreClassMenu_auto"
export suffix=".jmx"
export jmx_template_filename="${jmx_template}${suffix}"
export os_type=`uname`
# 須要在系統變量中定義jmeter根目錄的位置,以下
# export jmeter_path="/your jmeter path/"
# 清空nohup.out
cat /dev/null > nohup.out
# 強制殺掉JMeter進程
killJMeter()
{
pid=`ps -ef|grep jmeter|grep java|awk '{print $2}'`
echo "jmeter Id list :$pid"
if [[ "$pid" = "" ]]
then
echo "no jmeter pid alive"
else
kill -9 $pid
fi
}
thread_number_array=(10 20 30 40 50)
for num in "${thread_number_array[@]}"
do
# 生成對應壓測線程的jmx文件
export jmx_filename="${jmx_template}_${num}${suffix}"
export jtl_filename="test_${num}.jtl"
rm -f ${jmx_filename} ${jtl_filename}
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 靜默壓測
nohup ${jmeter_path}/bin/jmeter -n -t ${jmx_filename} -l ${jtl_filename} &sleep 65
killJMeter
rm -f ${jmx_filename}
done
echo "自動化壓測所有結束"
複製代碼
這就是所有代碼,你能夠參考下面的解釋:數組
寫在最後bash