• JMeter+Ant+Jenkins接口自动化测试框架(Windows)


    一:简介

    大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件;Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具。将这三者结合起来可以搭建一套Web HTTP接口测试的持续构建环境,实现接口自动化测试,pc系统是Windows。

    二:jmeter+JDK安装

    jmeter+JDK安装

    三:Ant下载/安装
    下载安装包到指定位置,然后解压apache-ant-1.10.7.zip到当前目录。(下载地址http://ant.apache.org/bindownload.cgi)

    image
    image

    配置Ant环境变量

    1).新建ANT_HOME:值为Ant安装路径(如解压后的:D:\jmeter\jmeter-ant\apache-ant-1.10.7)
    2).PATH系统变量后添加:%ANT_HOME%\bin
    3).CLASSPATH系统变量中添加:%ANT_HOME%\lib

    设置完成保存 ,进入cmd窗口,输入ant -v,出现版本信息则安装成功
    image

    Ant配置JMeter,使用ant构建运行Jmeter,并且生成jtl,html报告
    1).将jmeter extras目录下的ant-jmeter-1.1.1.jar文件拷贝到ant安装目录下的lib文件夹中。
    2).jmeter默认保存的.csv格式的文件,所以我们要修改jmeter/bin/jmeter.properties文件内容 ,把jmeter.save.saveservice.output_format=csv 修改为jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#
    image
    优化测试报告下载优化模板,下载jmeter-results-shanhe-me.xsl,并放到jmeter的extras目录中(下载地址:jmeter.results.shanhe.me.xsl)
    修改jmeter/bin/jmeter.properties文件,设置需要输出的内容为true,并去掉前面的注释符号#,保存。这样执行完脚本后就会保存这些结果到.jtl文件里面(增加测试报告内容)
    image

    #
    jmeter.save.saveservice.data_type=true
    jmeter.save.saveservice.label=true
    jmeter.save.saveservice.response_code=true
    # response_data is not currently supported for CSV output
    jmeter.save.saveservice.response_data=true
    # Save ResponseData for failed samples
    jmeter.save.saveservice.response_data.on_error=true
    jmeter.save.saveservice.response_message=true
    jmeter.save.saveservice.successful=true
    jmeter.save.saveservice.thread_name=true
    jmeter.save.saveservice.time=true
    jmeter.save.saveservice.subresults=true
    jmeter.save.saveservice.assertions=true
    jmeter.save.saveservice.latency=true
    # Only available with HttpClient4
    jmeter.save.saveservice.connect_time=true
    jmeter.save.saveservice.samplerData=true
    jmeter.save.saveservice.responseHeaders=true
    jmeter.save.saveservice.requestHeaders=true
    jmeter.save.saveservice.encoding=true
    jmeter.save.saveservice.bytes=true
    # Only available with HttpClient4
    jmeter.save.saveservice.sent_bytes=true
    jmeter.save.saveservice.url=true
    jmeter.save.saveservice.filename=true
    jmeter.save.saveservice.hostname=true
    jmeter.save.saveservice.thread_counts=true
    jmeter.save.saveservice.sample_count=true
    jmeter.save.saveservice.idle_time=true
    

    3).在任意地方新建文件夹,然后在文件夹下分别新建新建jmeter_report文件夹,script文件夹,build.xml文件
    (配置ant的编译文件build.xml(注意:jmeter的extras文件下也有个build.xml文档,不要用这个文档来改,是两回事,这里的build文档是自己新建)
    image
    4).新建build.xml文件,并修改文档里内容
    image

    <?xml version="1.0" encoding="utf8"?>
    <project name="ant-jmeter-test" default="run" basedir=".">
        <tstamp>
            <format property="time" pattern="yyyyMMddHHmm" />
        </tstamp>
        <!-- 需要改成自己本地的jmeter目录-->
        <property name="jmeter.home" value="D:\jmeter_ant\apache-jmeter-5.4.3" />
        <!-- jmeter生成的jtl格式的结果报告的路径-->
        <property name="jmeter.result.jtl.dir" value="D:\jmeter_testcase\jmeter_report\jtl" />
        <!-- jmeter生成的html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="D:\jmeter_testcase\jmeter_report\html" />
        <!-- ʺ生成的报告的前缀-->
        <property name="ReportName" value="TestReport_" />
        <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/TestReport_${time}.jtl" />
        <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${time}_SummaryReport.html" />
        <property name="jmeter.detail.result.jtlName" value="${jmeter.result.jtl.dir}/TestReport_${time}.jtl" />
        <property name="jmeter.detail.result.htmlName" value="${jmeter.result.html.dir}/${time}_DetailReport.html" />
        <target name="run">
            <antcall target="test" />
            <antcall target="report" />
            <!--<antcall target="sendmail" />-->
        </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:\jmeter_testcase\script" 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.detail.result.jtlName}" out="${jmeter.detail.result.htmlName}" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
                <param name="dateReport" expression="${report.datestamp}"/>
            </xslt>
            <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}"/>
            </xslt>
            <!-- 拷贝报告所需的图片资源至目标目录 -->
            <copy todir="${jmeter.result.html.dir}">
                <fileset dir="${jmeter.home}/extras">
                    <include name="collapse.png" />
                    <include name="expand.png" />
                </fileset>
            </copy>
        </target>
        <!-- 	<target name="sendmail">  
    <mail mailhost="smtp.exmail.qq.com" mailport="465" ssl="true" user="123456@jieshunpay.cn" password="GHtMMpSB5xpytzyM" subject="预付卡前置接口测试报告" from="qinliang.cai@jieshunpay.cn">  
    <to address="123456@jieshunpay.cn"/>  
    <message>详细报告请查看附件</message>  
    <attachments>  
    <fileset dir="${jmeter.result.html.dir}">   
    <include name="${ReportName}${time}.html"/>  
    </fileset>   
    </attachments>  
    </mail>  
    </target>  -->
    </project>
    
    验证配置

    将之前的Jmeter的脚本,与build.xml配置文件放在相同的目录下 。在build.xml所在目录打开命令窗口(鼠标在空白处按下shift键后在右键)或者命令行cd到build.xml文件所在目录,输入ant run回车,执行测试
    image

    查看测试报告

    image
    总报告
    image
    明细报告
    image

    四:安装Jenkins并配置,构建持续集成

    介绍:Jenkins是一个开源的软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,使软件的持续集成变成可能。
    1).下载Jenkins安装包,下载地址:https://www.jenkins.io/download/(安装Jenkins前确保您的电脑已经配置好JDK)
    image
    2).下载好的jenkins.msi 双击安装(傻瓜式)
    3).安装好后,会自动打开浏览器 并打开地址:localhost:8080
    4).按照提示的路径输入密码
    image
    5).选择插件安装,也可手动安装。主要是安装HTML Publisher PluginAnt In Workspace
    6).安装完插件后,创建新用户
    image
    7).在Jenkins中系统管理-系统设置中,配置jdk 和 Ant.
    image
    image
    8).新建一个项目
    image
    image
    image
    image
    image
    脚本配置完成,点击应用。
    进入项目主页,点击构建,生成报告
    image
    image
    image

  • 相关阅读:
    EasyUI Combobox组合框(模糊搜索、默认值绑定)
    Asp.Net下载文件时中途失败问题
    VS使用小技巧之——设置调试时启动项目和启动页
    VS使用小技巧之——给代码添加region
    VS使用小技巧之——引入整个文件夹
    VS使用小技巧之——任务列表
    FineUI给表格行内链接设置弹出窗体
    cnpm私服搭建和发布包
    阿里云产品术语和docker
    angularjs1.x的一些知识点整理
  • 原文地址:https://www.cnblogs.com/liuyanhang/p/15980619.html
Copyright © 2020-2023  润新知