​JMeter安装

JMeter安装包:

  • 下载地址:https://jmeter.apache.org/download_jmeter.cgi

  • 依赖JDK环境

JDK环境配置:

  • JAVA_HOME    E:\jdk1.8.0_51

  • CLASSPATH    %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

JMeter配置文件修改

为什么要修改配置文件

  • jmeter执行结果文件默认保存的不是xml格式,无法转化成html格式

  • jmeter执行结果文件默认有很多执行数据是不保存的,而测试报告需要这些数据

  • 配置文件路径 ${jmeterhome}/bin/jmeter.properties

  • 配置文件修改内容:修改jtl文件格式:去掉注释(#),修改csv为xml

如果出现如下内容,说明安装成功:

Buildfile: build.xml does not exist!

Build failed


Ant相关使用:

定制集成Ant配置文件(bulid.xml):

具体参看build.xml文件

    1. <?xml version="1.0" encoding="UTF-8"?>
    2.  
    3. <project name="ant-jmeter-test" default="all" basedir=".">
    4. <tstamp>
    5. <format property="time" pattern="yyyyMMddhhmm" />
    6. </tstamp>
    7. <!-- 需要改成自己本地的 Jmeter 目录 -->
    8. <property name="jmeter.home" value="E:\apache-jmeter-3.2" />
    9. <!-- jmeter生成jtl格式的结果报告的路径 -->
    10. <property name="jmeter.result.jtl.dir" value="C:\Users\Administrator\.jenkins\workspace\MiaomiApi\report\jtl" />
    11. <!-- jmeter生成html格式的结果报告的路径 -->
    12. <property name="jmeter.result.html.dir" value="C:\Users\Administrator\.jenkins\workspace\MiaomiApi\report\html" />
    13. <!-- 生成的报告的前缀 htmlm名称与jenkins,HTML directory to archive 设置一致,否则报告会出现404-->
    14. <property name="ReportName" value="TestReport" />
    15. <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    16. <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/index.html" />
    17.  
    18. <target name="all">
    19. <antcall target="test" />
    20. <antcall target="report" />
    21. </target>
    22.  
    23. <target name="test">
    24. <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
    25. <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
    26. <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
    27. <testplans dir="E:\ApiTest\jmx" includes="*.jmx" />
    28. </jmeter>
    29. </target>
    30. <!-- 解决html报告中没有日期,以及NAN的问题-->
    31. <path id="xslt.classpath">
    32. <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
    33. <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    34. </path>
    35.  
    36. <target name="report">
    37. <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
    38. <xslt
    39. classpathref="xslt.classpath"
    40. force="true"
    41. in="${jmeter.result.jtlName}"
    42. out="${jmeter.result.htmlName}"
    43. style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
    44. <!-- 解决html报告中没有日期的问题-->
    45. <param name="dateReport" expression="${report.datestamp}"/>
    46. </xslt>
    47.  
    48. <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
    49. <copy todir="${jmeter.result.html.dir}">
    50. <fileset dir="${jmeter.home}/extras">
    51. <include name="collapse.png" />
    52. <include name="expand.png" />
    53. </fileset>
    54. </copy>
    55. </target>
    56. </project>

    如上标注的为路径信息,需要修改为自己的本地路径

  • style参数为生成html文件的模板文件,可以修改为自己的模板文件,jmeter提供了多个模板文件可供使用

  • 将bulid.xml文件拷贝到:C:\Users\Administrator\.jenkins\workspace\工作目录\ 下


Jenkins相关插件介绍与配置:

Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括:

1.      持续的软件版本发布/测试项目。

2.      监控外部调用执行的工作。

Jenkins部署:

  • 下载地址:https://jenkins.io/index.html

  • 下载war包,将jenkins.war文件放入tomcat下的webapps目录下

  • 启动tomcat

  • 浏览器访问:http://localhost:8080/jenkins

  • 新建项目:登录jenkins--新建--输入项目名称--选择:构建一个自由风格的软件项目

Jenkins安装插件:

  • 登录jenkins--系统管理--管理插件--可选插件

  • 安装:Ant Plugin、HTML Publisher plugin 、Performance plugin插件


JMeter插件:Performance plugin

  • 功能:用来展示jmeter执行结果

  • 配置:jenkins--选择新建的项目--配置--增加构建后操作步骤--Publish Performance test result report--add a new report--选择JMeter--Report files输入: **/*.jtl

配置说明:

  • Report files:配置jtl文件路径,相对路径与绝对路径均可,图为相对路径

  • 其他选项:配置失败比例显示图形等参数,按需配置


    Ant插件:Ant plugin

  • 功能:用来执行Ant

  • 配置如下图:

配置说明:

  • Ant Plugin可以在构建步骤中添加,直接执行构建

  • Ant Version:在jenkins--系统管理--Global Tool Configuration--ant中维护

Html展示插件:HTML Publisher plugin

  • 功能:展示html报告

  • 配置截图:

配置说明:

  • HTML directory to archive:填写生成html文件的路径(与Ant的 build.xml中设置的保持一致)

  • index page[s]:填写展示报告的主页(与Ant的build.xml中设置的保持一致)

  • 其他选项:按需填写

原理说明:

  • 本插件并不会自己产生html文件,而是通过xslt转化xml生成的报告

  • xslt可以自己在服务器中安装,也可以通过通过Ant配置文件指定jar包,本文就是通过Ant指定jmeter内部集成的jar包

  • 生成的html文件并不是在jenkins中默认的报告路径展示,而是会复制${jenkinshome}/jobs/projectname/htmlreports/HTML_REPORT 目录下

  • 每次只能展示最新版本的html报告,也就是说上一次编译的html报告会被覆盖

  • 因为jenkins安全性的问题,默认加载出来的报告是无css的,通过以下配置解决:

  • HTML Publisher Plugin 插件在新的Jenkins版本中会导致打开的网页中无法加载CSS以及无法点击按钮的情况, 由于CSP导致,可在Jenkins控制台中执行,jenkins--系统管理--脚本命令行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")以解决此问题。其他由于CSP原因导致的html插件也可用此方法解决

Jenkins配置:

服务器环境与依赖:

  • Jdk:安装并配置环境变量

  • Ant:安装并配置环境变量

  • Jmeter:安装并添加需要的插件

其他:

  • Jmeter+Ant,需要将${jmeterhome}/extras/ant-jmeter-1.1.1.jar文件拷贝到${anthome}/lib目录下,否则编译会报错

  • Jmeter如需链接数据库,需添加jdbc插件

  • 如果不引入jmeter中的xslt,需要手动安装该软件

  • Jenkins项目配置:

  • jenkins的工作路径,同样的jar包都可能会生成不同的路径。 jenkins--系统设置--系统设置


测试执行与报告优化:

测试报告模板:

jmeter自带模板:

  • jmeter自带了4个模板(jmeter3后降低为2个)

  • 模板路径:${jmeterhome}/extras/jmeter-results*.xsl

  • 模板效果(jmeter-result-detail_21.xsl):

  • 修改报告的名称:${jmeterhome}/extras/jmeter-results*.xsl文件中<xsl:param    name="titleReport" select="'MiaomiTestReprot'"/>修改标红部分

第三方模板:

  • 下载地址:http://shanhe.me/node/18/314

  • 把下载的文件放到jmeter的extras目录下

  • 修改jmeter.properties文件如下部分,我这里都修改成true,这样执行完脚本后就会保存这些结果到.jtl文件里面:

第三方模板:

  • 下载地址:http://shanhe.me/node/18/314

  • 把下载的文件放到jmeter的extras目录下

  • 修改jmeter.properties文件如下部分,我这里都修改成true,这样执行完脚本后就会保存这些结果到.jtl文件里面:

  1. jmeter.save.saveservice.data_type=true
  2. jmeter.save.saveservice.label=true
  3. jmeter.save.saveservice.response_code=true
  4. # response_data is not currently supported for CSV output
  5. jmeter.save.saveservice.response_data=true
  6. # Save ResponseData for failed samples
  7. jmeter.save.saveservice.response_data.on_error=false
  8. jmeter.save.saveservice.response_message=true
  9. jmeter.save.saveservice.successful=true
  10. jmeter.save.saveservice.thread_name=true
  11. jmeter.save.saveservice.time=true
  12. jmeter.save.saveservice.subresults=true
  13. jmeter.save.saveservice.assertions=true
  14. jmeter.save.saveservice.latency=true
  15. jmeter.save.saveservice.connect_time=true
  16. jmeter.save.saveservice.samplerData=true
  17. jmeter.save.saveservice.responseHeaders=true
  18. jmeter.save.saveservice.requestHeaders=true
  19. jmeter.save.saveservice.encoding=true
  20. jmeter.save.saveservice.bytes=true
  21. jmeter.save.saveservice.url=true
  22. jmeter.save.saveservice.filename=true
  23. jmeter.save.saveservice.hostname=true
  24. jmeter.save.saveservice.thread_counts=true
  25. jmeter.save.saveservice.sample_count=true
  26. jmeter.save.saveservice.idle_time=true
  1. l  修改build.xml文件,如下style的值修改为新下载的xsl文件名:
    1. <xslt
    2. classpathref="xslt.classpath"
    3. force="true"
    4. in="${jmeter.result.jtlName}"
    5. out="${jmeter.result.htmlName}"
    6. style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
    7. <param name="dateReport" expression="${report.datestamp}"/>
    8. </xslt>

    输出的报告如图:

关注微信公众号,自动化测试交流

Jenkins+JMeter+Ant 接口持续集成的更多相关文章

  1. Jenkins+Jmeter+Ant接口持续集成

    修改时间 修改内容 修改人 2016.5.22 创建 刘永志 2016.6.15 完成 刘永志 前言: 为什么要用Jmeter做接口测试: 当选择这套方案的时候,很多人会问,为什么选择Jmeter做C ...

  2. Jenkins+Jmeter+Ant 接口持续集成(转)

    来源:https://testerhome.com/topics/5186 为什么要用Jmeter做接口测试 当选择这套方案的时候,很多人会问,为什么选择Jmeter做Case管理?为什么不自己写框架 ...

  3. Jenkins+Jmeter+Ant自动化持续集成环境搭建

    [前言] 今天让我们先把准备工作做好 >> 搭建环境! [正文] JDK+Jmeter安装教程: 参考博客:https://www.cnblogs.com/baoziluo/p/79056 ...

  4. Jenkins+jmeter+ant+Git 持续集成(六、代码提交到Gitlab即自动构建)

    实现原理: 利用jenkins和gitlab的webhook结合,实现提交代码之后,自动触发jenkins的构建. 1.Jenkins的插件安装: 需要安装两个gitlab的插件:Gitlab Hoo ...

  5. Jenkins+svn+ant+tomcat持续集成

    转载自 http://www.cnblogs.com/liuhaixia/p/7267473.html Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+ ...

  6. Jenkins + jmeter + ant + git 自动化集成

     背景: 目前测试组项目多,手头任务紧,且回归测试任务量较大,经过组内讨论采用相对快速高效的方式(自动化接口测试类型),在迭代任务中把主要精力集中在新需求测试:而回归测试时,主要采用自动化测试,提高测 ...

  7. jenkins,jmeter,ant持续集成

    1.安装 jenkins, jmeter, ant   2.将 jmeter下extras中的 ant-jmeter-1.1.1.jar拷贝到ant的lib下面 3.将 jmeter下collapse ...

  8. Jenkins+Jmeter+Ant自动化集成及邮件正文以html输出

    一.工具的安装与环境变量配置 1.依次安装Jenkins+Jmeter+Ant,具体安装步骤,此文不再详述 2.配置Jmeter&ant环境变量 Jmeter变量: 验证是否配置成功:cmd窗 ...

  9. 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

    背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...

随机推荐

  1. JDBC访问数据库的基本步骤

    加载驱动 通过DriverManager对象获取连接对象Connection 通过连接对象获取会话 通过会话进行数据的增删改查,封装对象 关闭资源

  2. 采坑指南——k8s域名解析coredns问题排查过程

    正文 前几天,在ucloud上搭建的k8s集群(搭建教程后续会发出).今天发现域名解析不了. 组件版本:k8s 1.15.0,coredns:1.3.1 过程是这样的: 首先用以下yaml文件创建了一 ...

  3. 网络游戏开发-客户端1(开始Hello world)

    打开Egret Launcher ,新建一个EUI项目,起名为 EQiPai 这里需要勾选的是socket网络库,game游戏库.如果要面向海外用户的话,建议勾上Facebook的小游戏sdk. 然后 ...

  4. 从零学习基于Python的RobotFramework自动化

    从零学习基于Python的RobotFramework自动化 一.        Python基础 1)      版本差异 版本 编码 语法 其他 2.X ASCII try: raise Type ...

  5. C#学习--Oracle数据库基本操作(连接、增、删、改、查)封装

    写在前面: SQLserver的C#封装:https://www.cnblogs.com/mexihq/p/11636785.html 类似于上篇有关SQLserver的C#封装,小编对Oracle数 ...

  6. 渗透测试-基于白名单执行payload--Compiler

    复现亮神课程 0x01 Compiler前言 说明:Microsoft.Workflow.Comiler.exe是.NET Framework默认自带的一个实用工具,用户能够以XOML工作流文件的形式 ...

  7. insert into select 引起的 "子查询返回的值不止一个。当子查询跟随在**之后,或子查询用作表达式时,这种情况是不允许的"

    目录 1.事故现场 1.1 在使用 Insert into Table2 select * from Table1 将表1的数据插入到表2时,报错如下: 1.2 sql 语句 2.推测 3.解决方案 ...

  8. 百万年薪python之路 -- 装饰器进阶

    本文链接:https://blog.csdn.net/xiemanR/article/details/72510885 一:函数装饰函数 def wrapFun(func): def inner(a, ...

  9. Javascript进阶必会

    概念: 局部块函数声明: ES5才承认有这个东西. function f(){return 'global';} function test(x){ var result = []; if(x) { ...

  10. Java 获取前一天的24小时

    //获取凌晨时间 public static Date getTodayStartTime(){ Calendar todayEnd = Calendar.getInstance(); todayEn ...