Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习!

Jmeter + Ant + Jenkins 实现持续集成

1、Jmeter 安装

  安装教程参看:Jmeter 接口测试知识梳理——环境搭建篇

2、Ant 安装

  2.1、下载 地址:https://ant.apache.org/bindownload.cgi

2.2、解压到指定目录下即可

2.3、配置环境变量

ANT_HOME

D:\SProgram\Ant

Path

%ANT_HOME%\bin;

2.4、添加jar包

将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,

这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本

2.5、修改配置文件

jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,保存

jmeter.save.saveservice.output_format=xml

2.6、设置Jmeter工作空间

目录结构如下

结合下面build.xml文件,其实script 是存放将要执行的jmeter脚本文件的,即.jmx 文件的

ResultLog 即是存放测试报告的。

2.7、修改build.xml 文件

  将如下代码复制到新建build.xml文件保存即可

<?xml version="1.0" encoding="utf-8"?>
<project name="JmeterTest" default="all" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\SProgram\jmeter" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\JmeterSpace\ResultLog\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\JmeterSpace\ResultLog\html" />
<!-- 生成的报告的前缀 -->
<property name="ReportName" value="TestReport" />
<!-- 设置生成的.jtl文件名称,名称包含时间,防止覆盖 -->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<!-- 设置生成的.html文件名称,不包含时间,只保留最新报告,方便邮件获取唯一的报告 -->
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
<!-- 接收测试报告的邮箱 -->
<!-- 该功能暂时没有成功应用 -->
<property name="mail_to" value="Your_mail" />
<!-- 电脑地址 -->
<property name="ComputerName" value="Yyj" />
<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}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="D:\JmeterSpace\Script" includes="*.jmx" />
</jmeter>
</target>
<target name="report">
<xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_90Line.xsl" />
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<!-- 发送邮件 -->
<!-- 发送邮件功能暂未成功使用 -->
<target name="sendEmail">
<mail from="Your_mail@163.com" tolist="Your_mail@163.com" mailhost="smtp.163.com" mailport="25" user="Your_mail@163.com" password="Your_password" subject="${ReportName}${time}">
<message>接口测试报告</message>
<attachments>
<fileset dir="${JMeter.home}/extras/">
<include name="${ReportName}${time}.html"/>
</fileset>
</attachments>
</mail>
</target> </project>

其实至此,打开命令行,cd 切换到build.xml文件路径下,执行ant命令,即可得到如下图

以及得到如下测试报告

但是此时的测试报告还不完善,需要如下修改

2.8、修改Jmeter 测试报告模板

文件位置在 ${jmeter.home}/extras/目录下

查找 expand.png,以及collapse.png 修改路径如下。这里根据自己实际情况修改。问题在于,如果测试报告不是本地打开,会出现图标不显示。

注意:jmeter-results-detail-report_90Line.xsl 文件,代码行比较多,就不放在这里了,此文件已经放到了QQ群:193056556中 文件Jmeter目录下,有需要的可以进群自取。

 下载后放到指定目录下,即可直接使用无需修改!

2.9、解决报告显示NaN的问题

  

  解决方案,要下载一个xalan.jar,serializer.jar包,将这两个jar包入ant的lib包中,输入ant查看运行结果,使用浏览器查看,OK,显示了!

  jar包已经放到群里文件中,见上面提示!

3、Jenkins 安装

  3.1、下载

  下载地址:https://jenkins.io/download/

3.2、安装

点击安装,选择安装路径,一路下一步即可。

安装成功后会自动打开网页
需要输入管理员密码:密码参见如下图文件

3.3、新建任务

3.4、配置参数

高级中设置工作空间,这里是测试报告的地址,设置后,发送测试报告时,不需要再写绝对路径了,直接写报告名称即可。

旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就勾选丢弃旧的构建,同时设置保持构建天使和保持构建的最大个数两个参数。
  注意:三个设置必须同时设置,否则无效

3.5、设置定时运行间隔

这里,设置间隔时间为15分钟运行一次

日程表介绍

【  * * * * * 】 这五个 “*”  分别的定义为:分 时 天 月 星期

Minutes within the hour (0–59)

HOUR       Thehour of the day (0–23)

DOM         Theday of the month (1–31)

MONTH   Themonth (1–12)

DOW         Theday of the week (0–7) where 0 and 7 are Sunday.

*表示全部

即 下图表示 每天 23点某时构建一次。

如果天写了值表示某月的某天构建一次,同理 年和星期也是一样。

3.6、设置构建

添加 invoke ant,完成后点击保存

构建设置build file, build 主要是为了生成测试报告。

3.7、设置邮件发送

  这里使用一个sendmail.jar文件

  注意:该文件已经放入到群文件中,参考上面注意提示信息!

  

   使用WinRAR打开该文件,  修改如下文件

根据实际需要 修改该配置文件

修改完自己的配置文件后,可以将自己的配置文件放到jar包中,通过RAR打开jar 然后复制粘贴自己的配置文件到 jar 中,然后将sendmail.jar 存放到指定路径。

设置 邮件发送命令,如图,sendmail.jar放到了lib 下。其实放哪里都行,这里用的时候全路径引用即可!

命令:
java -jar D:\SProgram\tools\sendmail.jar -s "XX测试服接口测试报告,请查收。" -t yangyaojun@tenez.cn -b "test接口测试报告,请查看附件。" -a "TestReport.html"

-a "测试报告路径+测试报告名称"

对于 要设置 多个收件人时, 收件人邮箱之间用英文逗号隔开即可

最后保存配置即可。构建任务,即可自动执行测试任务,并发送邮件到指定邮箱!

Jmeter 接口测试知识梳理——持续集成篇的更多相关文章

  1. Jmeter 接口测试知识梳理——应用基础篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter 接口测试知 ...

  2. Jmeter 接口测试知识梳理——环境搭建篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! 环境搭建篇 很多文章介绍 ...

  3. 持续集成篇_08_Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)

    持续集成篇_08_Hudson持续集成服务器的使用(自动化编译.分析.打包.部署) 1.创建任务 svn用户验证 验证通过 *****五颗*表示每分钟检查svn路径是否有变更,有变更就会重新构建,相当 ...

  4. Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)

    使用jenkins+git+python脚本进行持续集成的接口测试,在jenkins平台,利用插件等,把管理代码的git仓库的代码更新下来进行持续接口测试,python进行开发测试脚本,git进行远程 ...

  5. Jmeter+Ant+Jenkins搭建持续集成的接口测试框架

    https://my.oschina.net/hellotest/blog/516079 摘要: 一个系统通常有多个接口,软件的生命周期中,我们会不断的去优化老的接口和开发新的接口,那么在这个过程中, ...

  6. 一.Jmeter+Ant+Jenkins搭建持续集成接口性能自动化测试

    微创新作品信息 1)微创新作品描述 A.为什么诞生: 1. 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换, ...

  7. 持续集成篇_05_SonarQube代码质量管理平台的介绍与安装

    1.SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质量(为什么要用SonarQube): (1)复杂度分布(complexity):代码复杂度过高将 ...

  8. 持续集成篇 --Hudson持续集成服务器的安装配置与使用

    样例项目参考视频教程:http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53 IP:192.168.4.221  8G内存 ...

  9. 2019 DevOps 必备面试题——持续集成篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

随机推荐

  1. mysql 中语句执行的顺序以及查询处理阶段的分析

    原文链接:http://www.php.cn/mysql-tutorials-408865.html 本篇文章给大家带来的内容是关于mysql中语句执行的顺序以及查询处理阶段的分析,有一定的参考价值, ...

  2. InstallShield 2015 生成单个EXE包和 MSI包

    生成EXE包: 生成MSI包:

  3. tp框架中的一些疑点知识-5

    关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...

  4. luogu P2486 [SDOI2011]染色

    树剖做法: 就是两个dfs+一个线段树 难度的取决基本==线段树的维护难度 所以对有点线段树基础的,树剖也不难做吧 这里操作有二 一:两点间路径染色 线段树的区间赋值操作 二:查询路径段的个数 考虑线 ...

  5. 【Dalston】【第五章】API服务网关(Zuul) 上

    微服务场景下,每一个微服务对外暴露了一组细粒度的服务.客户端的请求可能会涉及到一串的服务调用,如果将这些微服务都暴露给客户端,那么客户端需要多次请求不同的微服务才能完成一次业务处理,增加客户端的代码复 ...

  6. 深度学习课程笔记(十二) Matrix Capsule

    深度学习课程笔记(十二) Matrix Capsule with EM Routing  2018-02-02  21:21:09  Paper: https://openreview.net/pdf ...

  7. EF Core In-Memory Database Provider

    原文链接 This can be useful for testing, although the SQLite provider in in-memory mode may be a more ap ...

  8. System.ServiceProcess与System.Configuration.Install命名空间的介绍

    System.ServiceProcess 命名空间提供用于实现.安装和控制 Windows 服务应用程序的类.服务是长期运行的可执行文件,其运行没有用户界面 System.ServiceProces ...

  9. dataTable表头未对其解决方法

    本文为博主原创,未经允许不得转载: 在tab页中使用dataTable时,默认显示的dataTable表头与数据显示正常,另一个的datatable则表头与数据未对其. 检查元素发现,datatabl ...

  10. 3、Python编程之MySQLdb模块(0602)

    解释器环境与选项 python解释器启动 python [options] [ -c cmd | filename | - ] [ args ] python解释器环境变量 python代码的测试.调 ...