打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
持续集成: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

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Jmeter+maven+Jenkins构建云性能测试平台(一)
轻量级自动化-Jmeter+Maven+Ant集成-1
接口自动化框架对比 | 质量工程
Docker持续部署图文详解
Jenkins中集成jmeter
Linux环境搭建 jmeter+jenkins+ant环境,Linux下安装JDK、jmeter、ant、jenkins
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服