Jenkins持续集成接口压测

步骤

  • 自动化压测- jmeter + shell
  • Jenkins与jmeter压测,环境要求
  • 自动压测运行逻辑
  • Jmeter输出压力测试报告
  • 压测报告与Jenkins集成
  • Jenkins任务:源码同步、运行任务、展示测试报告

压力测试脚本准备

 

 

将Jmeter成功请求的jmx文件放在相关项目中

 

编写shell执行脚本

#!/usr/bin/env bash
# 压测脚本模板中设定的压测时间应为60秒
export jmx_template="iInterface"
export suffix=".jmx"
export jmx_template_filename="${jmx_template}${suffix}"
export os_type=`uname`

# 需要在系统变量中定义jmeter根目录的位置,如下
export jmeter_path="D:/apache-jmeter-5.2.1"

echo "自动化压测开始"

# 压测并发数列表
thread_number_array=(10 20 30)
for num in "${thread_number_array[@]}"
do
    # 生成对应压测线程的jmx文件
     #分别生成10 20 30 对应并发的文件夹
    export jmx_filename="${jmx_template}_${num}${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_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 "自动化压测全部结束"
本地成功运行

 

Jenkins 部署

新建自由风格的项目,并选择有运行环境的slave节点
配置clone地址和文件名
配置报告路径

 

posted @ 2021-01-28 16:50  成子吃橙子  阅读(226)  评论(0)    收藏  举报