Jmeter/性能测试从入门到进阶

30. Jmter脚本自动化压测

2019-12-23  本文已影响0人  软件测试汪

自动化压力测试

脚本为了实现不同线程组下压力情况,其实通过Jmeter开源组件Ultimte Thread Group也可以实现。这里只是另外一种实现方式。

实现思路:

image.png

步骤

以下内容基于centos

  1. 把Jmeter脚本和 shell脚本放到/usr/local 目录下
  2. export jmeter_path="/your jmeter path/"
  3. sh auto_stress_test.sh
#!/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|grep ${jmx_filename}|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 "自动化压测全部结束"


软件测试汪简书地址
软件测试汪博客地址

欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

转载请注意出处,谢谢合作

上一篇下一篇

猜你喜欢

热点阅读