【jmeter】Jmeter接口HTML可视化测试报告——Jenkins+Jmeter+Ant自动化集成环境搭建

版权声明:本文为博主原创文章,欢迎转载,转载须注明出处:By 故三殇 https://blog.csdn.net/qq_39720249/article/details/84951058

目录

一、环境搭建

二、文件下载

三、文件配置

四、本地调试

五、创建.bat文件

六、Jenkins配置邮件

七、配置测试项目

八、自动部署成功校检

九、jmeter仪表盘HTML报告自动化构建



一、环境搭建

(1)不做集成,只在本机生成报告,需要安装以下软件:

①jdk安装:【jdk】window10:jdk 8下载和安装步骤

②Ant安装:【Ant】Windows:Windows 10 安装部署Ant

③jmeter安装:【jmeter】jmeter 4.0下载安装和汉化步骤


(2)【Windows】需要做自动化集成的,需要安装以下软件:

①jdk安装:【jdk】window10:jdk 8下载和安装步骤

②Ant安装:【Ant】Windows:Windows 10 安装部署Ant

③jmeter安装:【jmeter】jmeter 4.0下载安装和汉化步骤

④Jenkins安装:【Jenkins】Windows 10:Jenkins的下载和安装



二、文件下载

(1)jmeter 生成详细html报告需要下载文件:“jmeter.results.shanhe.me.xsl” ,此文件下载地址如下:

官网下载:点击前往下载


(2)jmeter 生成详细html报告需要下载文件:“build.xml” ,并且进行必要的修改。


(3)“jmeter.results.shanhe.me.xsl”和“build.xml”2个文件下载地址:

百度网盘下载地址:点击前往下载     提取码:uc74 
我的资源下载地址:点击前往下载



三、文件配置

(1)将“jmeter.results.shanhe.me.xsl” 文件放到jmeter安装目录的 extras 目录下:


(2)使用ant构建运行Jmeter,并且生成jtl、Html报告,需修改jmeter的bin目录下的“jmeter.properties”文件:

①为防止乱码出现,务必修改编码 :UTF-8

# The encoding to be used if none is provided (default ISO-8859-1)
#sampleresult.default.encoding=ISO-8859-1

添加以下内容:
sampleresult.default.encoding=UTF-8


②jmeter默认保存的是.csv格式的文件,由于HTML报告的需要,针对jmeter生成的jtl文件所包含的数据需要做新的配置,以满足测试需求修改生成的jtl文件为xml格式存储数据,所以我们先要设置一下bin/jmeter.properties文件内容,修改jmeter.properties文件 :jmeter.save.saveservice.output_format=xml,修改后的文档内容如下:

注意: 如果在使用ant的时候出现了报错,就把此配置文件中的 “jmeter.save.saveservice.output_format=xml” 前面的加上“#”注释掉,如果使用ant集成并且没有报错可以不把前面的#去掉。 

注意:后面要生成jmeter报告仪表盘时,发现这里需要设置成:jmeter.save.saveservice.output_format=csv,
否则会报错:ERROR o.a.j.JMeter: Error in NonGUIDriver
这个报告却认定xml或者空,不能为csv,这个后面会说如何两全,所以这里可以直接注释掉,或者设置为:
jmeter.save.saveservice.output_format=csv

# legitimate values: xml, csv, db.  Only xml and csv are currently supported.
#jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.output_format=xml

# The below properties are true when field should be saved; false otherwise
#
# assertion_results_failure_message only affects CSV output
jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#
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=false
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
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=false
jmeter.save.saveservice.samplerData=true
#jmeter.save.saveservice.responseHeaders=false
jmeter.save.saveservice.responseHeaders=true
#jmeter.save.saveservice.requestHeaders=false
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
#jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
#jmeter.save.saveservice.filename=false
jmeter.save.saveservice.filename=true
#jmeter.save.saveservice.hostname=false
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
#jmeter.save.saveservice.sample_count=false
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true

# Timestamp format - this only affects CSV output files
# legitimate values: none, ms, or a format suitable for SimpleDateFormat
jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS

(3)【Windows】将jmeter的extras目录下的ant-jmeter-1.1.1.jar文件,拷贝到Ant的lib目录下:


(4)修改并保存jmeter的extras目录下的“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="G:\Jmeter\apache-jmeter-5.0" />
    <!-- jmeter生成jtl格式的结果报告的路径,可自定义--> 
    <property name="jmeter.result.jtl.dir" value="G:\Jmeter\apache-jmeter-5.0\report\jtl" />
    <!-- jmeter生成html格式的结果报告的路径,可自定义-->
    <property name="jmeter.result.html.dir" value="G:\Jmeter\apache-jmeter-5.0\report\html" />
    <!-- 生成的报告的前缀名字-->  
    <property name="ReportName" value="性能测试报告" />
    <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" />
    
    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>
    
    <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="G:\Jmeter\apache-jmeter-5.0\workspace" includes="*.jmx" />
        </jmeter>
    </target>
        
    <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}"/>
        </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的extras目录下打开CMD,运行"ant.bat -file build.xml -Dtest=Test" . 查看jmeter的report目录jtl和html目录下是否出现Test.jtl、Test.html文件,若有,则构建成功。
若构建失败,请分析cmd打印的日志消息,定位问题:

ant.bat -file build.xml -Dtest=Test



五、创建.bat文件

在命令窗口输入参数执行有点麻烦,太繁琐了。 可以使用.bat 批处理文件进行快速执行。每次需要执行时只需要双击.bat文件就可自动执行,很方便。

批处理文件创建方法:在jmeter的extras目录下,新建txt文档,重命名后缀名为.bat 就可以了,比如JmeterReport.bat,然后用记事本编辑或者Notepad++编辑该文件:



六、Jenkins配置邮件

点击前往查看我的另一博文:【Jenkins】Jenkins的系统消息和邮件通知配置



七、配置测试项目

(1)新建测试项目(接口测试) 

在Jenkins首页左边:点击新建任务 -> 选择"构建一个自由风格的软件项目",输入Item名称(中英文不限,建议使用英文) –> 点击确定,进入你新建的测试项目的配置页面:


(2)项目配置——配置项目描述、历史文件自动删除

①描述:用于编写该项目的介绍(可忽略,项目过多时,自己可以备注,以便区分)。


②丢弃旧的构建:这里勾选上,为了避免多余的构建日志、临时文件占磁盘空间,需要定期的清除过期文件。

例如这里选择保存3天之内的构建文件,最大保存10个构建项目的文件:


③点击右侧的高级 -> 勾选使用自定义的工作空间

目录填写你的Jmeter安装目录中的脚本存放目录路径即可。

说明:比如jmeter安装目录为G:\Jmeter\apache-jmeter-5.0,脚本目录是workspace,则此处填写
G:\Jmeter\apache-jmeter-5.0\workspace:

(注意:设置工作目录主要是ant构建时用到了该目录下的build.xml文件,以及的的jmx脚本文件、jtl文件、html文件存放在此处; 
准确的来说,此工作目录与jmeter没有任何关系,为了避免干扰,这里直接将工作空间新增在jmeter目录下。)


(3)源码管理

选择none(无):


(4)构建触发器——定时监控

选择此项目构建的触发条件,例如本项目的是为了实现接口的定时监控,于是选择Build periodically(定期构建)。

注意:具体参数说明点击帮助按钮查看详情:

例子:

#每十五分钟(也许在:07,:22,:37,:52)
H / 15 * * * * 
#每小时上半场每十分钟一次(三次,也许在:04,:14,: 24)
H(0-29)/ 10 * * * * 
#每小时一次,每小时45分钟,从上午9:45开始,每个工作日下午3:45结束。
45 9-16 / 2 * * 1-5 
#每个工作日上午9点到下午5点每两小时一次(可能是上午10:38,下午12点38分,下午2点38分,下午4点38分)
HH (9-16)/ 2 * * 1-5 
#每月1日和15日每天一次,除了12月
HH 1,15 1-11 *


(5)构建——批处理命令

构建 -> 增加构建操作 -> 执行Windows批处理命令 :


①此处编写删除jtl文件的命令:

因为Jmeter运行jmx脚本文件,生成jtl报告文件。如果存在同名的jtl文件,并不会覆盖,而是追加;当然,上面build文件构建的,不会存在重复,因为文件名带有时间,可以区分,但是这个jtl报告,历史报告用处不大,自己看着是否需要删除历史报告来设置此操作。设置好之后:每次构建运行jmeter脚本文件之前会删除之前所有的jtl文件。

del "G:\Jmeter\apache-jmeter-5.0\report\jtl"\***.jtl


②继续构建,增加之前Jenkins自动部署,执行之前写好的bat文件命令,实现一键执行测试计划和输出HTML报告:

@echo off
echo 执行并输出测试报告
G:
cd G:\Jmeter\apache-jmeter-5.0\extras
JmeterReport.bat


(6)构建环境

选择之前在jenkins设置的ant和jdk:


(7)构建后操作

新增构建后操作→Archive the artifacts(归档成品)



八、自动部署成功校检

 



九、jmeter仪表盘HTML报告自动化构建

点击查看我的另一博文:【jmeter】jmeter报告可视化:配置生成报告仪表板,jmeter+Jenkins自动化构建生成HTML报告

猜你喜欢

转载自blog.csdn.net/qq_39720249/article/details/84951058