Loading

jmeter+ant+tomcat持续集成

前言

2018年的时候,我写过一篇文章:Jenkins+Jmeter+ant接口自动化框架for Linux学习

但是由于两年了,我自己试了一下也不能使用了。所以趁着周末把这篇文章翻新一下。

下载安装

我们需要下载四个文件

在服务器的当前用户目录新建api_test目录

使用FileZilla工具链接服务器(此工具的使用在此不做赘述)上传至此目录。

上传完成后对三个解压包进行解压

hoou@hoou-PC:~/api_test$ tar -zxvf apache-jmeter-5.3.tgz

hoou@hoou-PC:~/api_test$ tar -zxvf apache-ant-1.9.15-bin.tar.gz

hoou@hoou-PC:~/api_test$ tar -zxvf apache-tomcat-8.5.57.tar.gz

配置Ant环境变量

打开文件,并编辑

hoou@hoou-PC:~/api_test$ vim ~/.bashrc

并新增以下内容

export ANT_HOME=/home/hoou/api_test/apache-ant-1.9.15
export PATH=$ANT_HOME/bin:$PATH

然后验证一下

用ant构建命令来调动Jmeter执行接口测试,并生成测试报告

配置Jmeter

新建report目录

在Jmeter主目录下新建一个report文件夹并在report中新建如图所示的三个文件夹

复制ant-jmeter-1.1.1.jar

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

hoou@hoou-PC:~/api_test$ cp apache-jmeter-5.3/extras/ant-jmeter-1.1.1.jar apache-ant-1.9.15/lib/

新建配置ant的编译文件 build.xml

注:将新建的build.xml文件放入在Jmeter目录中新建的report文件夹。

<?xml version="1.0" encoding="UTF-8"?>  
  
<project name="ant-jmeter-test" default="run" basedir=".">  
      
    <tstamp>  
        <format property="time" pattern="yyyyMMddhhmm" />  
    </tstamp>  
    <!-- 需要改成自己本地的 Jmeter 目录-->    
    <property name="jmeter.home" value="/home/hoou/api_test/apache-jmeter-5.3" />  
    <property name="basedirectory" value="${jmeter.home}/extras" />  
    <!-- jmeter生成jtl格式的结果报告的路径-->   
    <property name="jmeter.result.jtl.dir" value="${jmeter.home}/report/jtl" />  
    <!-- jmeter生成html格式的结果报告的路径-->  
    <property name="jmeter.result.html.dir" value="${jmeter.home}/report/html" />  
    <!-- Name of test (without .jmx) -->  
    <property name="test" value="Test"/>  
    <!-- 生成的报告的前缀-->    
    <property name="ReportName" value="TestReport" />  
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/index.jtl" />  
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/index.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}">  
             <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->  
            <testplans dir="${jmeter.home}/report/run" 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-report_21.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>

jmeter.home部分可根据自己的配置进行修改。

配置jmeter.properties文档

找到jmeter.properties文档,在/opt/apache-jmeter-4.0/bin目录下,打开该文档并编辑

修改jmeter报告输出格式为xml:

改jmeter.save.saveservice.output_format=csv 为jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#

执行构建测试

选取一个做好的Jmeter测试脚本demo放入report目录中的run目录。如不知此目录在哪,还请阅读上文

执行测试
第一步:cd到build.xml文件所在目录

hoou@hoou-PC:~/api_test/apache-jmeter-5.3/report$

第二步:输入 ant 回车,执行测试

出现如图所示successful,成功!

查看测试结果报告
在报告输出存放路径下查看是否有jtl和html结果报告

打开html文档,测试结果展现了执行的用例名称、成功率、用例执行时间等结果参数

这样的结果是不是不太直观,因为用jmeter自带的测试报告得到的测试报告信息并不是很全,下面讲一下怎么优化测试报告

优化测试报告

下载报告模板

下载优化模板 jmeter-results-shanhe-me.xsl,拷贝到jmeter的extras目录中
下载地址:

链接:https://pan.baidu.com/s/17UlGb1o0tZ37PLmtay40-g

密码:bftq

将下载的东西移动到 /opt/apache-jmeter-4.0/extras 目录下

设置报告要输出的内容

进入/opt/apache-jmeter-4.0/bin目录。

在jmeter.properties中,设置需要输出的内容为true,并去掉前面的注释符号#

切换报告模板

在report目录设置buildxml文件的报告模板为优化后的模板jmeter.results.shanhe.me.xsl

此处:标红的名字已为替换后的文件名

构建测试

再次用ant构建测试,查看优化后的测试报告

到了这一步Jmeter和ant之间的衔接已经完成了。接下来配置Jenkins。

配置Jenkins

将Jenkins.war安装包。移动到Tomcat中webapps目录下。

hoou@hoou-PC:~/api_test$ mv jenkins.war apache-tomcat-8.5.57/webapps/

完成后我们进入Tomcat中的bin目录,运行tomcat

在浏览器中输入http://服务器地址:8080/,进入后出现如下界面

注:如果地址没有响应,多半是端口没有对外开放。

iptables -I INPUT 5 -m  state  --state  NEW  -m  tcp  -p  tcp  --dport  8080  -j  ACCEPT

输入上面的命令即可

然后输入

http://服务器地址:8080/Jenkins

就可以启动Jenkins了。

进入后按步骤操作。

并设置用户名。

注:用户名必须设置。

新建并配置一个任务

设置项目名称:

配置构建:

基本配置完成,应用并保存

执行构建

执行完成后控制台输出如下。

点击HTML Report会看到最新的构建测试报告

HTML结果打开如下图所示:

当然样式丢失了,如果要打开样式。

请移步大佬的方案: [上海悠悠——jenkins显示html样式问题的几种解决方案总结](https://www.cnblogs.com/yoyoketang/p/7518351.html)

至于构建失败发送邮件,请看我另外一篇博文。Jenkin构建失败发送邮件

posted @ 2020-12-20 18:39  随风挥手  阅读(269)  评论(1编辑  收藏  举报
群1
299524235(满)
群2
362812191