美文网首页
JenKins+ANT+JMeter+SVN接口自动化环境部署

JenKins+ANT+JMeter+SVN接口自动化环境部署

作者: 老张_Jason | 来源:发表于2019-12-12 11:04 被阅读0次

    Jenkins+ant+jmeter+svn环境部署

    一、Jenkins安装

    具体安装过程见—Linux下安装JenKins环境部署.md文件

    二、ant 安装

    1、下载 ant安装包

    http://ant.apache.org 上下载tar.gz版ant

    wget http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.14-bin.tar.gz
    
    image.png

    2、解压

    tar -vxzf apache-ant-1.9.14-bin.tar.gz -C /usr/local    解压
    

    3、修改环境变量

    vi /etc/profile
    
    #ant env
    export ANT_HOME=/usr/local/apache-ant-1.9.14
    export PATH=$PATH:$ANT_HOME/bin
    

    4、使配置生效

    source /etc/profile         source命令 是配置的 环境变量生效
    

    5、检查是否配置成功

    ant -version
    

    三、jmeter的安装

    首先要保证Linux中安装了jdk

    1、下载Jmeter

    下载地址:http://jmeter.apache.org/download_jmeter.cgi

    wget https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.1.1.zip
    
    image.png

    [图片上传失败...(image-4b3b0c-1576120045849)]

    2、传输到linux系统中,目录自己可以指定,

    我放在 /usr/local 目录下

    cp apache-jmeter-5.1.1.zip /usr/local/
    

    3、解压

    unzip apache-jmeter-5.1.1.zip
    

    4、配置环境变量

    vi /etc/profile
    后面追加进行
    
    #jmeter env
    JMETER_HOME=/usr/local/apache-jmeter-5.1.1
    PATH=$PATH:$JMETER_HOME/bin
    CLASSPATH=.:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
    export JMETER_HOME PATH CLASSPATH
    

    5、source生效

    source /etc/profile
    

    6、检查是否配置成功

    jmeter -v
    
    image.png

    四、ant与jmeter关联

    1、建立了2个目录为了保存后续的html报告跟jtl报告的内容

    mkdir -p /usr/local/apache-jmeter-5.1.1/smoke_report/html
    mkdir -p /usr/local/apache-jmeter-5.1.1/smoke_report/jtl
    
    Chmod 777 -R /usr/local/apache-jmeter-5.1.1/smoke_report
    给这个目录添加权限(后续我在Jenkins运行过程中出现过,因为权限问题,无法生存测试报告)
    
    Chmod 777 -R /usr/local/apache-jmeter-5.1.1/lib 
    添加了目录权限,后续中出现过文件,log日志没有权限,导致Jenkins运行不成功
    

    2、将jmeter目录下的extras目录下的ant-jmeter-1.1.1.jar文件复制到ant目录下的lib文件夹中

    cp /usr/local/apache-jmeter-5.1.1/extras/ant-jmeter-1.1.1.jar /usr/local/apache-ant-1.9.14/lib/
    

    3、下载测试报告模板

    1、下载style文件:jmeter.results.shanhe.me.xsl
    

    将jmeter-results-shanhe-me.xsl上传至jmeter安装目录的extras文件夹下

    cp /home/zgp/jmeter.results.shanhe.me.xsl /usr/local/apache-jmeter-5.1.1/extras/
    

    4、配置ant编译文件build.xml

    将build.xml放至jmeter目录下

    cp /usr/local/apache-jmeter-5.1.1/extras/build.xml /usr/local/apache-jmeter-5.1.1
    

    修改build.xml文件

    vi build.xml
    

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
    <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <property name="basedirectory" value="/usr/local/apache-jmeter-5.1.1/extras" />

    <property name="jmeter.home" value="/usr/local/apache-jmeter-5.1.1" />

    <property name="jmeter.result.jtl.dir" value="/usr/local/apache-jmeter-5.1.1/smoke_report/jtl" />

    <property name="jmeter.result.html.dir" value="/usr/local/apache-jmeter-5.1.1/smoke_report/html" />



    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="{jmeter.result.jtl.dir}/{test}.jtl" />
    <property name="jmeter.result.htmlName" value="{jmeter.result.html.dir}/{test}.html" />
    <path id="xslt.classpath">
    <fileset dir="{jmeter.home}/lib" includes="xalan*.jar"/> <fileset dir="{jmeter.home}/lib" includes="serializer.jar"/>
    </path>
    <target name="run">
    <antcall target="test" />
    <antcall target="report" />
    </target>
    <target name="test">
    <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
    <jmeter jmeterhome="{jmeter.home}" resultlog="{jmeter.result.jtlName}">

    <testplans dir="/var/lib/jenkins/workspace/checkout_svn_data/request_auto" includes="
    .jmx" />
    </jmeter>
    </target>
    <target name="report">
    <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
    <xslt classpathref="xslt.classpath"
    force="true"
    in="{jmeter.result.jtlName}" out="{jmeter.result.htmlName}"
    style="{jmeter.home}/extras/jmeter.results.shanhe.me.xsl"> <param name="dateReport" expression="{report.datestamp}"/>
    </xslt>
    <copy todir="{jmeter.result.html.dir}"> <fileset dir="{jmeter.home}/extras">
    <include name="collapse.png" />
    <include name="expand.png" />
    </fileset>
    </copy>
    </target>

    </project>

    切记:如果用Jenkins工具通过svn下载的jmx脚本文件位置不一致,这里需要修改

    <jmeter jmeterhome="{jmeter.home}" resultlog="{jmeter.result.jtlName}">

    <testplans dir="/var/lib/jenkins/workspace/checkout_svn_data/request_auto" includes=".jmx" />*
    </jmeter>
    </target>

    5、jmeter/bin/properities文件

    修改jmeter安装目录下的jmeter/bin/properities文件,修改jmeter.save.saveservice.output_format=xml

    vi /usr/local/apache-jmeter-5.1.1/bin/jmeter.properties
    

    6、调试ant配置jmeter是否成功

    • 1,脚本已经编写好,并且运行没有错误

    • 2,脚本已经发到到指定的目录里面

      cp login.jmx /var/lib/jenkins/workspace/checkout_svn_data/request_auto/
      
    • 3,ant run(检查构建是否成功)

    image.png
    • 4、生成的html报告
    image.png

    五、Jenkins配置

    1、配置环境变量

    Jenkins中-系统配置-全局工具配置

    配置jdk

    image.png
    查看linux系统java路径
    Echo $java_home
    或者which java
    
    [root@192 bin]# which java
    /usr/bin/java
    

    在后续跑Jenkins脚本中 发现多了一个bin跟java,把环境变量中的bin/java给删除了(我linux系统 默认安装了java)

    2、配置 ant

    image.png

    /usr/local/apache-ant-1.9.14 目录为大家linux服务中 ant路径位置

    3,添加2个插件 系统配置-插件中(完成后重启Jenkins工具)

    image.png

    4、Jenkins中添加一个自由风项目

    image.png

    5、丢弃旧的构建

    image.png

    6、源码管理

    image.png

    代码下载路径为 /var/lib/jenkins/workspace/jmeter_ant_jenkins/checkout_svn_data

    7、构建触发器

    image.png

    10 15 * * * 每天下午15点 10分运行一次

    8、构建 ant

    image.png

    9、构建HTML报告

    image.png

    10、构建jtl报告

    image.png

    11、看构建成功的结果

    image.png

    六、如果Jenkins需要root执行权限

    1、修改Jenkins配置文件

    # 打开配置文件
    vim /etc/sysconfig/jenkins
    # 修改$JENKINS_USER,并去掉当前行注释
    $JENKINS_USER="root"
    

    2、修改Jenkins相关文件夹用户权限

    chown -R root:root /var/lib/jenkins
    chown -R root:root /var/cache/jenkins
    chown -R root:root /var/log/jenkins
    

    3、重启Jenkins服务并检查运行Jenkins的用户是否已经切换为root

    # 重启Jenkins(若是其他方式安装的jenkins则重启方式略不同)
    service jenkins restart
    # 查看Jenkins进程所属用户
    ps -ef | grep jenkins
    # 若显示为root用户,则表示修改完成
    

    七、Jenkins performance插件生成性能测试报告

    把Jenkins部署好了,但是用了之后发现performance插件有问题,如果按下面这样设置统计所有的jtl文件,会导致文件夹过于臃肿,于是,而且生成的Performance Trend 比较混乱,不是很直观,于是思考修改一下

    4249725225-5c98d88b22aef_articlex.png

    试验了一下发现如果多次构建后生成在同一个jtl文件里,解析出的Performance Trend是正确的,但是我原本的设置中,jtl文件名是精确到分钟的,需要修改成精确到天的,这样正好一天的结果能看的很直观。
    修改不是很难,总共修改3个地方即可
    1.build.xml文件中的时间戳精度
    原来是这样的,,jtl和html用的是同一个时间变量,咱们需要把这两个分开来

    image.png

    修改后如下,也就是多建立一个精确到天的时间变量

    image.png

    1、插件安装

    系统管理---->插件管理----->可选插件----->搜索Zentimestamp

    安装即可

    2、插件使用

    系统管理---->系统设置---->全局属性

    image.png

    时间格式根据自已的需要设定。

    3、Job特例时间戳的设置

    打开对应的job 我们可以发现多了一个选项:

    image.png

    当我们不勾选此选项时将采用系统设置里设置的格式。如果勾选此选项将会优先采用Job中的时间戳格式。

    注意:

    1.如果时间戳的格式填写不正确,将会导致Job的构建失败。

    2.变量名不是BUILD_ID 而是BUILD_TIMESTAMP 在我们想使用的地方直接$BUILD_TIMESTAMP 即可

    4、修改任务中performance插件的jtl路径,使用新的时间变量

    image.png

    5、设置好了,运行看一下

    相关文章

      网友评论

          本文标题:JenKins+ANT+JMeter+SVN接口自动化环境部署

          本文链接:https://www.haomeiwen.com/subject/svwzgctx.html