性能自动化压测

性能测试总是在给业务场景不断的施压,找出性能瓶颈

或许每次的压测时间都很长

jmter自动化压测对于我来说很久前很神秘,之后明白原来就是对线程数做参数化,通过性能测试策略来便捷的解决问题

策略这词看起来,有点玄乎,实际的意思就是应该怎么做,实话性能测试的水很深,我也是入门罢了

话不多说,如下:

步骤1:选择性能测试业务,选择高频使用

步骤2:确定性能测试指标

步骤3:搭建性能测试业务用例(哪些接口,调用方式)、准备性能测试环境、数据(模拟客户的环境)

步骤4:感觉前面的步骤都是废话和技术不沾边,其实不是,分析-设计-编码这样的定律不是乱说的,不想清楚怎么做到最后也是一事无成,开发jemter脚本 + 真实业务场景(csv数据驱动、思考时间、斜坡上周期....) 不考虑真实的场景做出来也是不达标

步骤5:搭建性能监控docker+influxDB+grafa

步骤6:观察每组压测后的结果,以及性能的表现趋势(当然制定使用二分法来制定压测用户数)             

步骤7:至结果分析

             拥有预测之性能指标,达到预期的用户数即停止测试........

             没有预期的用户数及指标,压测达到性能瓶颈时,服务端哪个性能指标先不满足即优化哪个

步骤8:性能调优.....(tomcat调优、mysql调优、以至于xxxx入门到精通...........架构十分熟悉,这些你需要玩得很6,当然我也不具备)

步骤9:测试报告、jmx脚本.....

----------------------------------------------------------------------

完成步骤5后,跑通jemter,开始编写bash shell脚本,通过sed命令,参数化替换jemter设定好的形参

自动化压测策略:

①10 20 50 100  200 400     

②300    250    220....

③....

 

再通过jenkins让大家都可以参与进来

嗯,这很友好~

----------------------------------------

总之:

左边一台显示随时观察性能指标的趋势变化,右边显示器写功能测试用例

完成压测后通过每一组压测结果具体指标分析,根据再制订下一组自动化压测线程数

最终,一下午时间过去了,不影响其他工作,这就是自动化的魅力!

附:

变量替换如下图所示

 

 

 

 

shell脚本如下:

# usr/bin/env bash

#压测脚本模板中设定的压测时间为60s
export jmx_template="emenu"
export suffix=".jmx"
export jmx_template_filename="${jmx_template}${suffix}"
export os_type="uname"

echo"开始"
thread_number_array={10 20 30 40 50 60}
for num in "${thread_number_array[@]}"
do 
    export jmx_filename = "${jmx_template}_${mun}${suffix}"
    export jtl_filename = "test_${num}.jtl"
    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_fillname}
    else
            sed -i "s/thread_num/${num}/g" ${jmx_fillname}
    fi
#jmx 静默压测 
    ${jmter_path}/bin/jmeter -n -t ${jmx_filename} -l ${jtl_filename}
#生产报告
    ${jmter_path}/bin/jmeter -g ${jtl_filename} -e -o ${web_report_path_name}
done
echo "压测结束"
posted @ 2021-04-27 11:07  半城风雨  阅读(348)  评论(0)    收藏  举报