Jmeter性能测试自动化构建

1.方案简介

1.1持续集成

持续集成系统的组成
1.一个自动化构建过程:包括自动编译,分发,部署和测试等
2.一个代码存储库:版本管理
3.一个持续集成服务器:为了不影响开发,如果条件允许,尽量配置一个服务器单独作为持续集成服务器。

1.2 持续集成实现

1.2.1 jenkins+ant + jmeter

1.jenkins安装与配置

2.ant安装配置
ant是基于java的一款构建工具,通过配置build.xml,实现自动化构建。
a.设置环境变量
ANT_HOME:D:\test_tool\apache-ant-1.10.7
path:%ANT_HOME%\bin

注意事项:
1.win10如果不成功,需要添加CLASSPATH:%ANT_HOME%\lib;
2.测试是否配置完成:ant -version

b.配置build.xml,放到ant的bin目录


<project name="JmeterTest" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    tstamp>
    
    <property name="jmeter.home" value="D:\test_tool\jmeter\apache-jmeter-5.2.1" />
    
    <property name="jmeter.result.jtl.dir" value="D:\test_tool\jmeter\apache-jmeter-5.2.1\ouput\jtl" />
    
    <property name="jmeter.result.html.dir" value="D:\test_tool\jmeter\apache-jmeter-5.2.1\ouput\html" />
    
    <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="all">
        <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}">
            
            <testplans dir="D:\test_tool\jmeter\apache-jmeter-5.2.1\jmx" includes="*.jmx" />
        jmeter>
    target>
    <target name="report">
        <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${
        jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
        
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            fileset>
        copy>
    target>
    
project>

c.ant的bin目录下cmd执行ant build.xml
Jmeter性能测试自动化构建_第1张图片
c. 直接执行:ant, 执行了但是报错
Jmeter性能测试自动化构建_第2张图片
d.修改jmeter.properties
jmeter.save.saveservice.output_format=xml

优化版本build.xml
1.优化NaN


<project name="JmeterTest" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    tstamp>
    
    <property name="jmeter.home" value="D:\test_tool\jmeter\apache-jmeter-5.2.1" />
    
    <property name="jmeter.result.jtl.dir" value="D:\test_tool\jmeter\apache-jmeter-5.2.1\ouput\jtl" />
    
    <property name="jmeter.result.html.dir" value="D:\test_tool\jmeter\apache-jmeter-5.2.1\ouput\html" />
    
    <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="all">
        <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}">
            
            <testplans dir="D:\test_tool\jmeter\apache-jmeter-5.2.1\jmx" includes="*.jmx" />
        jmeter>
    target>
     <path id="xslt.classpath">
       <fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/>
       <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
     path>
     
     <target name="report">
         <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="showData" expression="${show-data}"/>
             <param name="titleReport" expression="${ReportName}${time}"/>
             <param name="dateReport" expression="${ReportName}${time}"/>
         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.结合jenkins
a.构建
Jmeter性能测试自动化构建_第3张图片
b.构建后操作
Jmeter性能测试自动化构建_第4张图片
c.如果报告为空,修改匹配的html
Jmeter性能测试自动化构建_第5张图片
总结
1.简单:直接可以使用
2.使用场景:做接口自动化
3.如果要优化报告,需要修改build.xml
(报告比较粗糙,指定执行机很麻烦)

1.2.2 jenkins + 代码执行器+jmeter

操作流程:
1.修改jmeter.properties
注释jmeter.save.saveservice.output_format

2.配置jenkins
a.构建
确定要运行jmeter,选择对应的运行模式(windows,linux)
windows: Execute Windows batch command
linux: Execute Shell
(注意:每次都要删除之前的文件)
Jmeter性能测试自动化构建_第6张图片

3.构建查看HTML报告,但是不能正常显示
Jmeter性能测试自动化构建_第7张图片
解决办法:
Manage Jenkins–>Script Console–执行脚本:
System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
Jmeter性能测试自动化构建_第8张图片

4.再次构建查看报告
Jmeter性能测试自动化构建_第9张图片

你可能感兴趣的:(性能测试,jenkins,ant,jmeter)