• JMeter+Ant+jenkins集成


    1.ant简介

    1.1 什么是ant?

    JMeter: 编写测试脚本

    ant: 构建工具,执行测试脚本,并生成测试报告。Ant是一个功能强大的打包编译工具。我们使用他的目的是将JTL(xml)格式文件转化为html格式的文件

    1.2 什么是构建

    ​ 概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅于此,但是主要用来干这个

    1.3 ant的好处

    跨平台 --因为ant是使用java实现的,所以它跨平台

    ​ 使用简单--与ant的兄弟make比起来

    语法清晰--同样是和make相比

    功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发一些ant插件的时候,你会发现它更多的功能。

    1.4 ant的兄弟make

    ant做的很多事情,大部分是曾经有一个叫make的所做的,不过对象不同,make更多应用于c/c++ ,ant更多应用于Java。

    2. 构建ant环境

    1.去Apache官网上下载ant最新版,我下载的是apach-ant-1.9.1

    2.下完之后解压,放到一个目录下面。我把它和jmeter都放在了D:mysolution下

    3.配置环境变量,与jmeter类似。 下面这些和你ant存放的路径有关。

    新建系统变量ANT_HOME,值D:mysolutionapache-ant-1.9.1

    系统变量CLASSPATH,值后面添加D:mysolutionapache-ant-1.9.1lib

    系统变量Path,值后面添加D:mysolutionapache-ant-1.9.1in

    4.进入命令提示符,输入ant,结果如下图所示,"build.xml does not exist "说明ant配置成功

    3.Jmeter与Ant集成

    3.1 JMeter部分

    1.将D:apache-jmeter-5.0extras文件夹下的ant-jmeter-1.1.1.jar这个jar包复制到D:apache-ant-1.10.5lib文件夹下

    2.用记事本打开jmeterinjmeter.properties,将

    jmeter.save.saveservice.output_format=csv 改成jmeter.save.saveservice.output_format=xml,记得去掉前面的“#”

    3.设置输出内容,修改jmeter.properties文件

    4.在JMeter脚本目录创建build.xml文件,请根据实际情况进行配置。

    <?xml version="1.0" encoding="UTF8"?>
    <project name="ant-jmeter-test" default="run" basedir=".">
        <!-- 需要改成自己本地的 Jmeter 目录-->  
        <property name="jmeter.home" value="D:mysolutionapache-jmeter-5.1.1" />
        <property name="report.title" value="JMeter接口测试报告"/>
        <!-- jmeter生成jtl格式的结果报告的路径--> 
        <property name="jmeter.result.jtl.dir" value="D:Jmeter
    eportjtl" />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="D:Jmeter
    eporthtml" />
        <!-- 生成的报告的前缀-->  
        <property name="ReportName" value="APITestReport" />
    	<tstamp> <format property="time" pattern="YYYYMMDD HHmmss" /></tstamp>
        <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="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="D:Jmeterscript" includes="*.jmx" />
                
                <property name="jmeter.save.saveservice.output_format" value="xml"/>
            </jmeter>
        </target>
            
        <path id="xslt.classpath">
            <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
            <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
        </path>
    
    
        <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-detail-report_21.xsl">
                  <param name="dateReport" expression="${report.datestamp}"/>
                  <param name="titleReport" expression="${report.title}:${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>
    

    3.2 ant部分

    1.运行ant,进入到build.xml所在目录,运行ant。注也可以使用ant -buildfile build.xml来运行ant

    运行结束后,如若出现SUCCESS信息,则表示运行成功可去对应目录查看结果。部分运行结果信息如下:

       BUILD   SUCCESSFUL   Total   time: 9 seconds   
    

    3.3 查看JMeter结果

    此报告是apache-jmeter-3.2extras这个目录下jmeter-results-detail-report_21.xsl这个样式生成的报告

    4. 报告优化

    ant默认报告并不好看,出错之后,很难从报告上去定位问题,定位问题在哪里,可进行优化。优化原理:其实由.jtl格式转换为.html格式的报告过程中,style文件起了很关键的作用。

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

    2. 把下载的文件放到jmeter的extras目录下。

    3. 修改build.xml文件如下部分,修改xsl样式文件的文件名即可

    4. 运行结果:

    5. jenkins持续集成

    Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

    简而言之:Jenkins是实现持续集成平台脚本的定时运行、邮件发送、测试报告展示等

    5.1 jenkins的安装配置

    jenkins下载地址:https://jenkins.io/zh/download/,下载windows版并安装jenkins,安装成功后会自动打开: http://localhost:8080 页面,等待进入jenkins的配置页面。

    解锁jenkins完成配置

    关于插件的选择,还是老套路,省事用安装推荐的插件,高手自定义。

    创建管理员用户

    实例配置

    5.2 jenkins的使用

    5.2.1 新建一个job

    5.2.2 jenkin 配置中增加Ant插件

    添加待构建的文件路径,即Ant执行的build.xml文件路径。

    5.2.3 立即构建

    5.2.4 构建触发器

    5.3 jenkins其他配置

    5.3.1 丢弃旧的配置

    服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,并且服务器硬盘资源也会被占满。当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。

    5.3.2 邮件通知设置

    5.4 构建结果说明

    5.4.1 构建状态

    l Successful****蓝色:构建完成,并且被认为是稳定的。

    l Unstable****黄色:构建完成,但被认为是不稳定的。

    l Failed****红色:构建失败。

    l Disable****灰色:构建已禁用

    5.4.2 构建稳定性

    构建稳定性用天气表示:晴、晴转多云、多云、小雨、雷阵雨。天气越好表示构建越稳定,反之亦然。

    5.4.3 构建历史界面

    l console output****: 输出构建的日志信息

  • 相关阅读:
    Java数据库操作(MySQL与SQLserver)
    LeetCode 11. 盛最多水的容器
    LeetCode 10.正则表达式匹配
    LeetCode 9.回文数
    LeetCode 7. 整数反转
    LeetCode 6.Z 字形变换
    LeetCode 4.寻找两个正序数组的中位数
    LeetCode 3. 无重复字符的最长子串
    JOI2020遗迹
    线性规划对偶
  • 原文地址:https://www.cnblogs.com/laoluoits/p/12792017.html
Copyright © 2020-2023  润新知