• jmeter--接口自动化jmeter+ant+jenkins


    的 

    一.介绍

    接口自动化工具:jmeter+ant+jenkins

    流程:

      -1.jmeter已录制或手动设置好脚本后

      -2.配置ant,使用Ant工具,进行批量执行jmeter的脚本

      -3.使用Jenkins,进行持续化集成,发送邮件

    二.jmeter说明

    1.下载安装,之前已经说明了

    2.接口请求

    3.保存为.jmx

    接口请求:

    ①jmeter录制

    ②badboy录制后导入

    ③根据接口文档,编写

    本次手动填写的

    使用的工具说明:

      -1.jmeter版本3.2

      -2.线程组 -----请求数量

       HTTP请求头管理器 -----Header中的信息

         HTTP请求默认值 -----请求协议、ip地址、端口、路径(都是相同的,减少多次操作)

         CSV -----本地数据读取(请求中的参数,需要循环使用,懒得编写)

       用户参数 -----请求参数变参数化,有固定值、有随机请求的数据(每次迭代更新一次)【与用户定义的变量类似】

          响应断言 -----对返回响应文本进行判断

         察看结果树  -----显示返回结果

         聚合报告 -----展示请求的吞吐量信息

    截图:

     三.ant说明

    ①下载安装ant

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

    下载的版本:apache-ant-1.10.5

    下载后解压到指定位置即可

    注意:下载最新版也可能导致后面ant run不成功,降版本后则成功!

    ②环境配置

    ANT_HOME 为   D:ant+jmeterapache-ant-1.10.5

    CLASSPATH为   %ANT_HOME%lib;

    PATH为  %ANT_HOME%in;

    安装验证:命令行输入ant -version,出现版本信息则安装成功

    ③ant 配置 jmeter

      1.配置jmeter.properties文档

      在jmeter/bin目录下,编辑jmeter.properties,复制jmeter.save.saveservice.output_format=csv,粘贴到下一行,修改为:jmeter.save.saveservice.output_format=xml

      注意:新增的行不需要注释

      

      2.将jmeter extras目录下的ant-jmeter-1.1.1.jar文件拷贝到ant安装目录下的lib文件夹中

      3.配置ant的编译文件 build.xml(用ant批量执行jmeter脚本时使用的配置信息,很重要,一定要新建)

      

      我新建了一个目录,用来保存:测试用例、报告、配置(跟网上的其他大神学的),如下图:

      jmeter_test(主目录文件)

        result_log(测试报告及日志)

          html(测试报告生成目录)

          jtl(存放jtl文件的目录)

        script(存放jmeter的jmx文件)

        build.xml(核心配置文件)

      build.xml配置说明:(重点来了)

    <?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="D:ant+jmeterapache-jmeter-3.2" />
        <!-- jmeter生成jtl格式的结果报告的路径--> 
        <property name="jmeter.result.jtl.dir" value="D:ant+jmeterjmeter_test
    esult_logjtl" />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="D:ant+jmeterjmeter_test
    esult_loghtml" />
        <!-- 生成的报告的前缀-->  
        <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="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:ant+jmeterjmeter_testcase" 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.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>

    需要修改的地方:绿色标识

    前四个为:jmeter家目录、jtl格式报告保存位置、html格式报告保存位置、运行脚本的位置

    最后一个为:jmeter报告的模板(一般jmeter有默认模板:如下图所示)

    模板链接:https://pan.baidu.com/s/1tCx5SwXgc11dml8iUlz3lQ 密码:0qlc

    报告展示:(返回内容不全,需要详细的报告以后补充)

       4.配置完成,执行ant

      cmd目录下运行切换到D:ant+jmeterjmeter_test,输入ant执行,等待时间,出现BUILD SUCCESSFUL

      

      查看文件里的报告,如上上面的图

    四.Jenkins说明

    下载地址:https://jenkins.io/download/

    下载的是Windows版本的,一个压缩包,解压后是.msi 文件,点击进行安装

    在网上找了一个安装步骤: https://www.jianshu.com/p/6188bb16a89b

    配置好后,点击【新建任务】,填写【名称】,选择构建一个自由风格的软件项目

    进入配置构建页(用的别人的截图)

    添加ant的路径

     

     设置邮件通知

    返回首页,进行构建,打开测试报告存放路径会看到新生成的报告文档。

    注意:接口自动化已经全部完成了,后期还需要优化,尤其Jenkins的使用

                

      

  • 相关阅读:
    Java并发编程:并发容器之ConcurrentHashMap(转载)
    Java ConcurrentModificationException异常原因和解决方法
    Java并发编程:同步容器
    Java并发编程:深入剖析ThreadLocal
    错误:The POM for org.codehaus.plexus:plexus-compiler-api:jar:2.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details的解决方法
    maven工程中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
    部署时发出警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:jx-web' did not find a matching property.的解决方法
    [WARNING] The POM for com.tao:jx-service:jar:0.0.1-SNAPSHOT is missing, no dependency information available
    maven工程中警告[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    Eclipse中Errors occurred during the build最简单的解决方法
  • 原文地址:https://www.cnblogs.com/jieperhaps/p/9390579.html
Copyright © 2020-2023  润新知