持续集成:Jmeter+Maven+Jenkins自动化框架搭建(五):不同环境配置及运行结果判断

多环境选择

一、问题来源

居于测试中存在多套环境,并且经常要对各个环境进行冒烟测试,故考虑将持续集成环境做成可配置。不同环境的URL、Port、Database、DatabaseName都不一样。

二、解决思路

在Jenkins的ExecuteShell中实现,配置不同环境所对应的参数,根据构建时选择传入的环境不同,到工作空间中,找到脚本目录,并将指定的参数进行替换。

 

但是,这样便导致需要替换的基准值不一致,比如:拉取最新代码的jmeter脚本中配置的是I5的环境,第一次构建的时候选择I4,这样在第二次构建的时候,就导致基准值由I5变为了I4,也就是每一次需要替换的基准值是不确定的。

 

故,结合Jenkins的构建环境配置,在每次构建之前清除工作空间,保证每次取的都是基准值一样的脚本。

三、具体实现

(一)配置环境选择参数

在General -> 参数化构建过程-> 添加参数-> Choice Parameter,配置下拉选择环境参数

(二)清除工作空间

在构建环境 -> 勾选“Delete workspace before build starts” ,在构建开始之前清除工作空间,这样每次构建时都需要重新到git上拉取一次代码,保证代码最新并且可以取固定的基准模板(jmeter脚本)

(三)根据构建时选择的环境,更新脚本

在Pre Steps -> Add pre-build step -> Execute Shell

#!/bin/sh

 

url=ijapi5.wolaidai.com

port=59030

database_ip=192.168.252.102

database_name=rocket2_i2

 

 

cd /var/lib/jenkins/workspace/Jmeter-Maven-Jenkins/src/test/jmeter

 

case "${DEPLOY_ENV}" in

  "gd2a_01")

    ls | grep ".jmx" | while read line

    do

       sed -i "s/${url}/ijapi1.wolaidai.com/g;s/${port}/19030/g;s/${database_ip}/192.168.252.101/g;s/${database_name}/rocket2_i1/g" ${line}

    done

    ;;

  "gd2a_02")

    ls | grep ".jmx" | while read line

    do

       sed -i "s/${url}/ijapi2-gd2a.wolaidai.com/g;s/${port}/29030/g" ${line}

    done

    ;;

  "gd2a_04")

    ls | grep ".jmx" | while read line

    do

       sed -i "s/${url}/ijapi4-gd2a.wolaidai.com/g;s/${port}/49030/g;s/${database_ip}/192.168.252.103/g;s/${database_name}/rocket2/g;" ${line}

    done

    ;;

  *)

    ;;

esac

 

cd /var/lib/jenkins/workspace/Jmeter-Maven-Jenkins

注:脚本替换完成后记得要切换回工作空间的根目录,或者修改Build时配置的POM文件路径

执行结果判断

一、原因

由于Jenkins构建的成功或失败取决于项目构建是否正常,而不会判断Jmeter脚本执行结果是Pass 或者Fail,而针对接口测试来说,项目构建失败或者jmeter脚本中接口执行结果为Fail都算失败

二、解决思路

         结合Jenkins的Post Steps中的ExecuteShell,在脚本执行完成后,到存放测试报告的里面,判断文件中若存在0.00%,再判定脚本执行失败,返回1,否则为0,表示构建成功

if [[ `find /var/lib/jenkins/workspace/Jmeter-Maven-Jenkins/target/jmeter/html -name "*.html"  | xargs grep ">0.00%<"` == "" ]]; then

 echo "testcases were executed successfully"

 exit 0

else

 echo "there are at least one failed testcase"

 exit 1

fi

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值