目录

一、环境搭建

二、文件下载

三、文件配置

四、本地调试

五、创建.bat文件

六、Jenkins配置邮件

七、配置测试项目

八、自动部署成功校检

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



一、环境搭建

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

①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

  1. # The encoding to be used if none is provided (default ISO-8859-1)
  2. #sampleresult.default.encoding=ISO-8859-1
  3. 添加以下内容:
  4. sampleresult.default.encoding=UTF-8


②jmeter 默认保存的是 .csv 格式的文件,由于 HTML 报告的需要,针对 jmeter 生成的 jtl 文件所包含的数据需要做新的配置,以满足测试需求修改生成的 jtl 文件为 xml 格式存储数据,所以我们需要先要设置一下 bin/jmeter.properties 文件内容,(不设置为 xml 有时会报错:前言中不允许有内容)修改 jmeter.properties 文件 :

jmeter.save.saveservice.output_format=xml

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

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

修改后的文档内容如下:

  1. # legitimate values: xml, csv, db. Only xml and csv are currently supported.
  2. #jmeter.save.saveservice.output_format=csv
  3. jmeter.save.saveservice.output_format=xml
  4. # The below properties are true when field should be saved; false otherwise
  5. #
  6. # assertion_results_failure_message only affects CSV output
  7. jmeter.save.saveservice.assertion_results_failure_message=true
  8. #
  9. # legitimate values: none, first, all
  10. #jmeter.save.saveservice.assertion_results=none
  11. #
  12. jmeter.save.saveservice.data_type=true
  13. jmeter.save.saveservice.label=true
  14. jmeter.save.saveservice.response_code=true
  15. # response_data is not currently supported for CSV output
  16. #jmeter.save.saveservice.response_data=false
  17. jmeter.save.saveservice.response_data=true
  18. # Save ResponseData for failed samples
  19. jmeter.save.saveservice.response_data.on_error=false
  20. jmeter.save.saveservice.response_message=true
  21. jmeter.save.saveservice.successful=true
  22. jmeter.save.saveservice.thread_name=true
  23. jmeter.save.saveservice.time=true
  24. jmeter.save.saveservice.subresults=true
  25. jmeter.save.saveservice.assertions=true
  26. jmeter.save.saveservice.latency=true
  27. # Only available with HttpClient4
  28. jmeter.save.saveservice.connect_time=true
  29. #jmeter.save.saveservice.samplerData=false
  30. jmeter.save.saveservice.samplerData=true
  31. #jmeter.save.saveservice.responseHeaders=false
  32. jmeter.save.saveservice.responseHeaders=true
  33. #jmeter.save.saveservice.requestHeaders=false
  34. jmeter.save.saveservice.requestHeaders=true
  35. jmeter.save.saveservice.encoding=false
  36. jmeter.save.saveservice.bytes=true
  37. # Only available with HttpClient4
  38. #jmeter.save.saveservice.sent_bytes=true
  39. jmeter.save.saveservice.url=true
  40. #jmeter.save.saveservice.filename=false
  41. jmeter.save.saveservice.filename=true
  42. #jmeter.save.saveservice.hostname=false
  43. jmeter.save.saveservice.hostname=true
  44. jmeter.save.saveservice.thread_counts=true
  45. #jmeter.save.saveservice.sample_count=false
  46. jmeter.save.saveservice.sample_count=true
  47. jmeter.save.saveservice.idle_time=true
  48. # Timestamp format - this only affects CSV output files
  49. # legitimate values: none, ms, or a format suitable for SimpleDateFormat
  50. jmeter.save.saveservice.timestamp_format=ms
  51. 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”文件【这里直接拿下载好的文件覆盖原内容,全部换掉!部分注释的路径自己去修改即可。】:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="ant-jmeter-test" default="run" basedir=".">
  3. <tstamp>
  4. <format property="time" pattern="yyyyMMddhhmm" />
  5. </tstamp>
  6. <!-- 需要改成自己本地的 Jmeter 目录路径-->
  7. <property name="jmeter.home" value="G:\Jmeter\apache-jmeter-5.0" />
  8. <!-- jmeter生成jtl格式的结果报告的路径,可自定义-->
  9. <property name="jmeter.result.jtl.dir" value="G:\Jmeter\apache-jmeter-5.0\report\jtl" />
  10. <!-- jmeter生成html格式的结果报告的路径,可自定义-->
  11. <property name="jmeter.result.html.dir" value="G:\Jmeter\apache-jmeter-5.0\report\html" />
  12. <!-- 生成的报告的前缀名字-->
  13. <property name="ReportName" value="性能测试报告" />
  14. <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
  15. <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
  16. <path id="xslt.classpath">
  17. <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
  18. <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
  19. </path>
  20. <target name="run">
  21. <antcall target="test" />
  22. <antcall target="report" />
  23. </target>
  24. <target name="test">
  25. <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
  26. <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
  27. <!-- 声明要运行的脚本路径,"*.jmx"指包含此目录下的所有jmeter脚本-->
  28. <testplans dir="G:\Jmeter\apache-jmeter-5.0\workspace" includes="*.jmx" />
  29. </jmeter>
  30. </target>
  31. <target name="report">
  32. <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
  33. <xslt classpathref="xslt.classpath"
  34. force="true"
  35. in="${jmeter.result.jtlName}"
  36. out="${jmeter.result.htmlName}"
  37. style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
  38. <param name="dateReport" expression="${report.datestamp}"/>
  39. </xslt>
  40. <copy todir="${jmeter.result.html.dir}">
  41. <fileset dir="${jmeter.home}/extras">
  42. <include name="collapse.png" />
  43. <include name="expand.png" />
  44. </fileset>
  45. </copy>
  46. </target>
  47. </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个构建项目的文件:


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

  1. 目录填写你的Jmeter安装目录中的脚本存放目录路径即可。
  2. 说明:比如jmeter安装目录为G:\Jmeter\apache-jmeter-5.0,脚本目录是workspace,则此处填写
  3. G:\Jmeter\apache-jmeter-5.0\workspace:
  4. (注意:设置工作目录主要是ant构建时用到了该目录下的build.xml文件,以及的的jmx脚本文件、jtl文件、html文件存放在此处;
  5. 准确的来说,此工作目录与jmeter没有任何关系,为了避免干扰,这里直接将工作空间新增在jmeter目录下。)


(3)源码管理

选择none(无):


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

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

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

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

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


(6)构建环境

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


(7)构建后操作

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



八、自动部署成功校检



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

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

【二十二】win 10 :Jmeter 报告可视化 —— 配置 Jmeter 接口 HTML 可视化测试报告,Jenkins + Jmeter + Ant 自动化集成环境搭建相关推荐

  1. 手把手教你搭建Jenkins+Jmeter+Ant自动化集成环境

    一.安装前准备 1.JDK:jdk-8u121-windows-x64 2.jmeter工具:apache-jmeter-2.13 3.ANT工具:apache-ant-1.9.7-bin 4.jen ...

  2. 搭建Jenkins+Jmeter+Ant自动化集成环境

    一.安装前准备 1.JDK:jdk-8u121-windows-x64 2.jmeter工具:apache-jmeter-5.2 3.ANT工具:apache-ant-1.9.7-bin 4.jenk ...

  3. 【二十三】win 10 :Jmeter 报告可视化 —— 配置生成测试报告仪表板,Jmeter + Jenkins 自动化构建生成 HTML 报告

    目录 一.jmeter报告仪表板相关信息 二.文件修改说明 三.jmeter.properties文件配置 四.user.properties文件配置 五.新建jtl报告目录 六.复制jmeter.p ...

  4. jmeter(二十二)内存溢出原因及解决方法

    jmeter(二十二)内存溢出原因及解决方法 参考文章: (1)jmeter(二十二)内存溢出原因及解决方法 (2)https://www.cnblogs.com/imyalost/p/7901064 ...

  5. GUI的演化和python编程——Python学习笔记之二十二

    GUI的演化和python编程--Python学习笔记之二十二 写完了有关长寿的两篇博文,本该去完成哥德尔那个命题六的.对计算机图形界面的好奇,让我把注意力暂时离开那个高度抽象难读的哥德尔,给转到计算 ...

  6. 无人驾驶汽车系统入门(二十二)——使用Autoware实践激光雷达与摄像机组合标定

    无人驾驶汽车系统入门(二十二)--使用Autoware实践激光雷达与摄像机组合标定 单目相机分辨率高,我们可以使用各种深度学习算法完成对目标检测,但是缺乏深度,坐标等信息.激光雷达能够获得目标相当精确 ...

  7. 2021年大数据Hadoop(二十二):MapReduce的自定义分组

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 MapReduce的自定义分组 需求 分析 实现 第一步: ...

  8. iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)

    iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...

  9. FreeSql (二十二)Dto 映射查询

    适合喜欢使用 dto 的朋友,很多时候 entity 与 dto 属性名相同,属性数据又不完全一致. 有的人先查回所有字段数据,再使用 AutoMapper 映射. 我们的功能是先映射,再只查询映射好 ...

最新文章

  1. linux重启sh脚本,Linux 之shell脚本系列之服务启动/关闭/重启/状态
  2. 美多商城之用户注册(展示用户注册页面)
  3. 日常笔记——思科认证本地域登录
  4. 关于TransactionScope分布式事务在Oracle下的运作
  5. Python之旅:列表
  6. Spring 连接 PostgreSQL
  7. 矩阵分解 java_使用矩阵分解为推荐系统
  8. Ubuntu18.04.4 环境下对属性加密算法CP-ABE环境搭建
  9. 一次排查Java线程数异常--线程池使用不当造成线程数升高
  10. kubernetes视频教程笔记 (12)-容器探针
  11. atitit.提升开发效率---MDA 软件开发方式的革命(4)----编辑表单建模
  12. 【雨滴风格 时间倒计时置顶显示小工具】
  13. Differential Geometry之第十章极小曲面
  14. vulhub-靶场实战-安装
  15. 电压源和电流的关联参考方向_电流的参考方向_电压的参考方向
  16. 2018 东北四省赛
  17. VIP专区_读书_腾讯网
  18. 人事系统中如何根据打卡数据自动产生考勤记录
  19. 当前电子计算机发展的局限性,当前高中信息技术教学现状及教学改革探究
  20. 深圳云计算培训:云计算是怎么分类的

热门文章

  1. “评论王争夺赛”活动,第4期开始啦!
  2. 成为大数据工程师需要哪些技能?(一文秒懂大数据)
  3. [OI学习笔记]最小生成树之Prim算法
  4. centos 7.4 + postgresql 10.1 + pg_amqp
  5. ShaderLab学习总结
  6. MFC笔记(2)OnCtrlColor
  7. Zuul转发请求时HttpHostConnectException can‘t cast to ZuulException问题解决方法
  8. plsql连接本地oracle数据库,而远程主机却无法连接,出现无监听程序的解决方法(转)
  9. WinForm 处理未处理的异常 Application.ThreadException + AppDomain.CurrentDomain.UnhandledException
  10. 【白皮书分享】2021中国女性婚恋观白皮书.pdf(附下载链接)