Bootstrap

jenkins+ant+jmeter搭建

搭建目的:能在web页面去触发执行jmeter测试脚本,并且在web页面看到html测试结果报告。

了解下来通用做法:jenkins+ant+jmeter
jenkins: 是开源的、提供友好操作界面的持续集成工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。jenkins用java语言编写,可在Tomcat等流行的servlet容器中运行,也可以独立云溪。通常与版本管理工具(SVN,GIT)、构建工具(MAVEN,ANT,GRADLE)结合使用。

ant: apache ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的工具。Ant是纯java语言编写的,具有跨平台性。Ant运行时需要一个XML文件(构建文件),Ant通过调用target树,可以执行各种task,每个task实现了特定接口对象,它很容易集成到开发环境中去。
jmeter:

apache jmeter: 是基于java的压力测试工具。

整体过程理解如下
在这里插入图片描述

这个最终需要部署到专门测试linux机器上,现阶段在本地window机器搭建完善好后,再部署到测试服务器上。

搭建环境:

JDK: jdk1.8.0_281
ANT: apache-ant-1.10.9
JMETER: apache-jmeter-5.4.1
JENKINS:jenkins-war:2.263.3

JMETER搭建

下载地址:https://archive.apache.org/dist/jmeter/binaries/
在这里插入图片描述

1、解压apache-jmeter-5.4.1.zip到D:\software目录下
在这里插入图片描述

2、配置环境变量
1)新建:JMETER_HOME ,变量值输入:D:\software\apache-jmeter-5.4.1_A5
在这里插入图片描述

2)环境变量:CLASSPATH,添加
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;
在这里插入图片描述

3)环境变量:Path,添加 %JMETER_HOME%\bin
在这里插入图片描述

4)测试 jmeter -v
在这里插入图片描述

ANT安装

下载地址:https://ant.apache.org/bindownload.cgi
在这里插入图片描述

1、解压apache-ant-1.10.9-bin.zip到D:\software目录下
在这里插入图片描述

2、配置环境变量
1)新建环境变量 ANT_HOME ,变量输入:D:\software\apache-ant-1.10.9
在这里插入图片描述

2)环境变量 PATH添加,%ANT_HOME%\bin
在这里插入图片描述

3)测试 ant -v
在这里插入图片描述

ANT、JMETER其它设置

1、 jmeter结果文件默认保存的是.csv格式的文件,因为后面要生成html,所以要修改下默认配 置,修改文件“apache-jmeter-5.4.1_A5\bin\jmeter.properties”,设置:jmeter.save.saveservice.output_format=xml
在这里插入图片描述

2、 将apache-jmeter-5.4.1_A5\extras\ant-jmeter-1.1.1.jar拷贝到“\apache-ant-1.10.9\lib\”下
在这里插入图片描述

3、 在D:\software\apache-jmeter-5.4.1_A5下新建JmeterSpace目录,
Script 目录用来存放.jmx测试文件
在这里插入图片描述

ResultLog\html 目录存放生成的html文件
ResultLog\jtl 目录存放生成的jtl文件
在这里插入图片描述

4、创建built.xml,配置如下

<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter" default="run" basedir=".">
    <property name="jmeterPath" value="D:\software\apache-jmeter-5.4.1_A5"/>   
    <tstamp><format property="time" pattern="yyyyMMddHHmm" /></tstamp>
    
    <!-- jmeter环境配置 -->
    <property name="jmeter.home" value="D:\software\apache-jmeter-5.4.1_A5"/>
    <!-- jtl测试结果存放路径 -->
    <property name="jmeter.result.jtl.dir" value="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\jtl"/>
    <!-- html测试结果存放路径 -->
    <property name="jmeter.result.html.dir" value="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\html"/>
    <property name="htmlReportNameSummary" value="TestReport"/>
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}.jtl"/>
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}.html"/>

    <target name="run">
        <antcall target="test"/>
        <antcall target="report"/>
    </target>
       
    <!-- 执行接口测试 -->
    <target name="test">
        <echo>执行接口自动化测试用例</echo>
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 声明要运行的脚本“*.jmx”指包含此目录下的所有jmeter脚本-->
            <testplans dir="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\Script" includes="*.jmx" />
             <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
    
    <!-- 解决报告中NAN字段显示问题-->
    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar" />
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar" />    
    </path>
    
    <target name="report">
        <echo>生成接口自动化测试报告</echo>
            <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-detail-report_21.xsl"  >
                  <param name="titleReport" expression="${mailsubject}${time}"/> 
                  <param name="dateReport" expression="${report.datestamp}"/>
            </xslt>    
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->  
            <copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.html.dir}/expand.png" />
            <copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.html.dir}/collapse.png" />
            
    </target>
</project>

5、测试
在D:\software\apache-jmeter-5.4.1_A5\JmeterSpace打开cmd
执行: ant -Dtest=Script (Script这边我已经放入了.jmx测试文件)
在这里插入图片描述
在这里插入图片描述

执行成功后,可在html目录下,看到执行生成的html结果文件。
在这里插入图片描述

接下来就是jenkins了。

JENKINS安装

下载地址:https://get.jenkins.io/war-stable/2.263.3/
在这里插入图片描述

1、将下载的war包放入到D:\software\jenkins目录下,在该目录下执行cmd,启动jenkins.war包
java -jar jenkins.war
在这里插入图片描述

2、默认端口是8080,启动成功后,访问http://localhost:8080/
在这里插入图片描述

密码可以从路径找,也可以从控制台找
在这里插入图片描述

这边选了了安装推荐插件,安装需要一段时间,耐心等待安装完
在这里插入图片描述

更具体的安装步骤,可百度查找。

安装完成后,检查是否有这几个插件:Ant Plugin,Performance plugin,HTML publisher plugin,Groovy,若没有则依次安装
安装插件步骤
首页点击系统管理Manage Jenkins->管理插件Manage Plugins
在这里插入图片描述

在可选插件里搜索 上述几个插件的名称,例如 Groovy
在这里插入图片描述
在这里插入图片描述

上述jenkins准备就绪,开始配置项目。
1、新建item>Freestyle project,创建一个自由风项目
在这里插入图片描述

2、general,源码管理使用默认无,构建触发器,环境搭建使用默认空,
在这里插入图片描述
在这里插入图片描述

3、构建:增加Invoke Ant
在这里插入图片描述

Ant Version选择,选择前需先在全局工具配置里面配置好
Jenkins配置全局工具ANT

点击Manage Jenkins>Global Tool Configuration
Ant >新增Ant
在这里插入图片描述

Name: 确定ant名称
ANT_HOME: 配置ANT的安装路径,D:\software\apache-ant-1.10.9
应用,保存。
Targets: build.xml文件里标签维护的name:“run”
在这里插入图片描述

Build File: ant 构建文件build.xml的文件路径:D:/software/apache-jmeter-5.4.1_A5/JmeterSpace/build.xml
4、构建:新增Execute Grooxy script(解决Jenkins,查看配置HMTl测试报告样式丢失,未加载JS和CSS问题)
在Grooxy script ,输入命令:

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

在这里插入图片描述

5、构建后操作:增加构建后操作步骤Pubulish Performance test result report
在这里插入图片描述

Source data files (autodetects format): 生成的jtl文件路径,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\jtl\TestReport.jtl(现在还是固定一个文件,这边能到目录,还未尝试),
StandModle: 生成的jtl文件内容格式
在这里插入图片描述

6、构建后操作:增加构建后操作步骤Pubulish HTML reports
HTML directory to archive: 生成的html文件路径,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\html
index pages: *.html展示所有的html文件

在这里插入图片描述
在这里插入图片描述

7、保存,执行构建
在这里插入图片描述
在这里插入图片描述

可在控制台看到执行过程中输出的log日志
8、查看生成的html结果
点击HTML Report
在这里插入图片描述
在这里插入图片描述

9、生成带图标格式的,待完善;

总结:

通过jenkins+ant+jmeter,可以通过web友好页面,手动或者自动(现在还没有这个需求,触发条件还没用到),去执行已经设置好的.jmx测试用例,并在HTML Report插件里,直接看到生成的结果页面。因为初学的原因和目标要求结果不明确,某些过程配置还有待完善的地方,后面会根据实际情况逐步完善。记录下博文刚好自己把整个过程和理解理了下,看了好多个别人的博客凑出来的,最终发现有点凌乱,下次再搭建可能还是乱的。

;