• 基于jmeter,jenkins,ANT接口,性能测试框架


    背景

    公司计划推接口和性能测试,搭建这个性能测试框架框架是希望能够让每个人(开发人员、测试人员)都能快速的进行性能,接口测试,而不需要关注性能测试环境搭建过程。因为,往往配置一个性能环境可能需要很长的时间。

    该框架搭建 基于Jmeter和Jenkins搭建性能测试框架 和 jenkins+ANT+jmeter 接口测试环境搭建 演化过来。

    Jmeter GUI上制定测试计划

    Thread Group

    用函数__P()设置属性名和默认值的形式设置这三个属性,以方便在使用no-GUI模式启动Jmeter进行测试时,使用–jmeterproperty选项对属性值进行赋值。

    CSV Data Set Config

    并发数配置

    HTTP Request

    HTTP Request关联

    jenkins调用command non-GUI方式执行Jmeter

     

    set RUNFOLDER=%WORKSPACE%
    set JMETERBIN=D:Devlopjmeterapache-jmeter-2.7in
    set JMETERLIB=D:Devlopjmeterapache-jmeter-2.7lib
    set RESULTJTL=%RUNFOLDER%
    esult.jtl
    set TRANSJTL=$RUNFOLDER	rans.jtl
    set EXCELJTL=$RUNFOLDERexecl.jtl
    del -f -s -Q %RUNFOLDER%*.jtl
    del -f -s -Q %RUNFOLDER%Report*
    
    
    
    jmeter -n -t jmx*.jmx -l result.jtl --jmeterproperty threadCount=%CONCURRENCY% --jmeterproperty LoopCount=%LOOPCOUNT% --jmeterproperty RampUp=%RAMPUP% --jmeterproperty jenkins_workspace=%WORKSPACE%
    

      调用ANT生成html报告

    <?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="D:Devlopjmeterapache-jmeter-2.7" />
        <!-- jmeter生成jtl格式的结果报告的路径-->
        <property name="jmeter.result.jtl.dir" value="." />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value=".Report" />
        <!-- 生成的报告的前缀 -->
        <property name="ReportName" value="result" />
    
    	<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
        <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
    	<!-- Diffrent version of Jmeter has its own ant-jmeter.jar,Please input the right versioin -->
    	<path id="ant.jmeter.classpath">
    	<pathelement location="${jmeter-home}/extras/ant-jmeter-1.1.1.jar" />
    	</path>
    	<!-- use this config to generate html report; if not, may not display Min/Max Time in html-->
    	<path id="xslt.classpath">
    	<fileset dir="${jmeter.home}/lib" includes="xalan-2.7.1.jar"/>
    	<fileset dir="${jmeter.home}/lib" includes="serializer-2.7.1.jar"/>
    	</path>
    	
        <target name="report">
            <xslt in="${jmeter.result.jtlName}"
                  out="${jmeter.result.htmlName}" classpathref="xslt.classpath"  
                  style="${jmeter.home}/extras/jmeter-results-detail-report_30.xsl.xml" />
    		<xslt in="${jmeter.result.jtlName}"
                  out="${jmeter.result.html.dir}TestLog.html" classpathref="xslt.classpath"  
                  style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl" />
    
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
            <copy todir="${jmeter.result.html.dir}">
                <fileset dir="${jmeter.home}/extras">
                    <include name="collapse.png" />
                    <include name="expand.png" />
                </fileset>
            </copy>
        </target>
    </project>
    

      

    推送HTML报告

     

    jenkins执行界面

    文件jmx和build只需提交默认提供文件

    最终使用者只需要使用excel修改csv用例数据就可以进行进口和性能数据的采集

     执行结果

     执行结果同前面两个方案一致,不再补充

  • 相关阅读:
    Java程序语言的后门-反射机制
    JAVA设计模式-单例模式(Singleton)线程安全与效率
    JAVA设计模式-动态代理(Proxy)源码分析
    Mybatis源码解析,一步一步从浅入深(七):执行查询
    Mybatis源码解析,一步一步从浅入深(六):映射代理类的获取
    python程序中的进程操作
    进程
    操作系统的发展史
    详尽实用的 PyCharm 教程
    python的socketserver模块实现TCP/UDP并发
  • 原文地址:https://www.cnblogs.com/YatHo/p/6078322.html
Copyright © 2020-2023  润新知