Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

前置条件:系统已安装jdk

一、下载jmeter包,通过客户端放在安装目录

1、本次安装的版本为unzip apache-jmeter-5.0.zip

    unzip apache-jmeter-5.0.zip

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

2、配置环境变量

执行  vim /etc/profile

在后面加入:

export JMETER_HOME=/root/apache-jmeter-5.0 

exportCLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH 

export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin

3、执行: source /etc/profile  ,让配置生效

4、验证安装

jmeter -v

如果出现:-bash: /root/apache-jmeter-5.0/bin/jmeter: Permission denied

则给jmeter执行文件授权:

执行:chmod 777 /root/apache-jmeter-5.0/bin/jmeter

若看到如下图,则安装成功

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

5、下载报告模板

地址:http://shanhe.me/download.php?file=jmeter.results.shanhe.me.xsl

把报告放到jmeter的extras路径下面:

/root/apache-jmeter-5.0/extras

下载jmeter插件的的jar包

下载地址:https://jmeter-plugins.org/install/Install/

本次的版本为:jmeter-plugins-manager-1.3.jar

把这个jar包放到jmeter的:/root/apache-jmeter-5.0/lib/ext目录下面

二、安装ant

1、下载地址:https://ant.apache.org/bindownload.cgi

本次下载版本为:apache-ant-1.10.6-bin.tar.gz

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

2、上传到服务器与jmeter同一目录,本次的目录为/root

解压文件执行:tar -zxvf apache-ant-1.10.6-bin.tar.gz

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

3、配置环境变量,在/etc/profile后面添加如下信息

ANT_HOME=/root/apache-ant-1.10.6 CLASS_PATH=.:$JRE_HOME/lib PATH=$JRE_HOME/bin:$ANT_HOME/bin export ANT_HOME CLASS_PATH PATH

执行: source /etc/profile

验证安装:

执行:ant -version

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

三、安装tomcat

1、下载安装包

下载地址:https://tomcat.apache.org/download-80.cgi

本次所用的版本为:apache-tomcat-8.5.35.tar.gz

2、上传安装包到服务器

本次放置的目录为/usr

解压执行:  tar -zxvf apache-tomcat-8.5.35.tar.gz

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

3、重命名文件夹

执行:mv apache-tomcat-8.5.35 tomcat-jenkins

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

     

4、启动tomcat

     4.1、执行: cd /data/tomcat-jenkins/bin

     4.2、执行   sh startup.sh

如果见到如下报错:

:Cannot find ./catalina.sh.The file is absent or does not have execute permission.This file is needed to run this program

则权限不足:执行chmod 777 /data/tomcat-jenkins/bin/startup.sh

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

    4.3、查看进程

执行:ps aux|grep tomcat-jenkins

如下则启动成功,默认端口为8080

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

5、在浏览器访问http://ip地址:8080

见到如下页面说明安装成功

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

四、安装jenkins

下载地址:https://jenkins.io/doc/book/installing/

1、把jenkins的war包放到tomcat的如下目录

 /usr/tomcat-jenkins/webapps

访问http://ip:8080/jenkins

见到如下页面

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

2、根据提示,打开相应的文件获取初始密码

执行:vim /root/.jenkins/secrets/initialAdminPassword

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

3、配置用户

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

4、见到如下页面说明安装成功

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

PS:jenkins配置工作空间

1、vim /usr/tomcat-jenkins/bin/catalina.sh

2、在# OS specific support.  $var _must_ be set to either true or false.在上面添加一行

export JENKINS_HOME=/usr/local/jenkins

3、编辑profile文件:vi /etc/profile

4、添加:export JENKINS_HOME=/usr/local/jenkins

5、source /etc/profile

6、sh startup.sh

如果jenkins显示似乎已离线

则更改https为http

/usr/local/jenkins/hudson.model.UpdateCenter.xml

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

5、配置ant+jmeter

把extras目录下面的ant-jmeter-1.1.1.jar 拷贝到ant 的lib目录

cp ant-jmeter-1.1.1.jar /root/apache-ant-1.10.6/lib/

6、修改jmeter配置

6.1、将文件中#jmeter.save.saveservice.output_format=csv改为jmeter.save.saveservice.output_format=xml

6.2、修改如下输出信息

jmeter.save.saveservice.data_type=true

jmeter.save.saveservice.label=true

jmeter.save.saveservice.response_code=true

# response_data is not currently supported for CSV output

jmeter.save.saveservice.response_data=true

# Save ResponseData for failed samples

jmeter.save.saveservice.response_data.on_error=false

jmeter.save.saveservice.response_message=true

jmeter.save.saveservice.successful=true

jmeter.save.saveservice.thread_name=true

jmeter.save.saveservice.time=true

jmeter.save.saveservice.subresults=true

jmeter.save.saveservice.assertions=true

jmeter.save.saveservice.latency=true

jmeter.save.saveservice.connect_time=true

jmeter.save.saveservice.samplerData=true

jmeter.save.saveservice.responseHeaders=true

jmeter.save.saveservice.requestHeaders=true

jmeter.save.saveservice.encoding=false

jmeter.save.saveservice.bytes=true

jmeter.save.saveservice.url=true

jmeter.save.saveservice.filename=true

jmeter.save.saveservice.hostname=true

jmeter.save.saveservice.thread_counts=true

jmeter.save.saveservice.sample_count=true

jmeter.save.saveservice.idle_time=true

五、jenkins配置ant

1、全局工具配置

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

2、安装插件:

HTML publisher

3、配置工程

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

4、修改buid.xml文件

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter-test" default="all" basedir=".">

    <tstamp>

        <format property="time" pattern="yyyyMMddhhmm" />

    </tstamp>

    <!-- 需要改成自己本地的 Jmeter 目录-->

    <property name="jmeter.home" value="/root/apache-jmeter-5.0"/>

    <!-- jmeter生成jtl格式的结果报告的路径-->

    <property name="jmeter.result.jtl.dir" value="/root/apache-jmeter-5.0/report"/>

    <!-- jmeter生成html格式的结果报告的路径-->

    <property name="jmeter.result.html.dir" value="/root/apache-jmeter-5.0/report"/>

    <!-- 生成的报告的前缀-->

    <property name="ReportName" value="TestReport" />

    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />

    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />

    <target name="all">

        <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}">

            <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->

            <testplans dir="/root/apache-jmeter-5.0/testcases" includes="*.jmx" />

             <!-- 增加如下一行代码,否则会报错误,经测试使用jmeter3.0版本不增加下面一行代码不会报告错误-->

            <!--<property name="jmeter.save.saveservice.output_format" value="xml"/>-->

        </jmeter>

    </target>

    <!-- html报告中时间显示为NAN,原因是ant中缺失了两个lib库  xalan-2.7.2.jar和serializer-2.7.2.jar ,将这两个库拷贝到ant的lib目录下,或者在这里增加如下代码均可解决-->

    <path id="xslt.classpath">

        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>

        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>

    </path>

   

    <!-- html报告中Date report这里的时间没有正确显示出来,原因是未设定report.datestamp 属性值-->

    <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>

5、构建工程

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

6、查看报告

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

查看报告如下,感觉确实丑了一些,后面有空再优化一下

 

 

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

若报告样式没有加载出来

则在命令行执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

:

Linux搭建jmeter+ant+jenkins持续集成接口自动化框架

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")