解析Jmeter脱离Jenkins后Ant集成邮件通知问题

目录
  • 配置ant环境
  • 配置jmeter.properties
  • 配置ant jar包
  • 配置build文件
  • 引用jar包
  • ant构建
  • 任务计划
  • 总结

之前搭建在本地的Jenkins环境,由于重装系统的原因,环境不能用了。在用jmeter做测试的时候,索性用本地ant构建,运行下来也一样平稳。

结合Jenkins搭建环境,可以参考博文:Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境

我们言归正传,今天来讲下本地的ant构建并发送邮件。配置下来挺顺利也挺简单的,我们来细看。

配置ant环境

这个配置在上面的博文有详细步骤,所以在这里就不细说了,直接跳过。没有配置过的,参考上面博文即可。

配置jmeter.properties

在jmeter的bin目录下,找到jmeter.properties

  • jmeter.save.saveservice.output_format取消注释,并且修改值为xml
  • jmeter.save.saveservice.XXX取消注释,并且修改值为true

配置ant jar包

将jmeter的extras目录下的 ant-jmeter-1.1.1.jar 复制到ant的lib目录下

配置build文件

在jmeter的extras目录下,找到build.xml文件,增加邮件配置信息。build文件改造如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddHHmmss" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="jmeter地址" />
    <property name="mail_host" value="smtp.qq.com"/>
    <property name="mail_port" value="465"/>
    <property name="mail_username" value="发件人邮箱"/>
    <property name="mail_password" value="发件人邮箱授权码"/>
    <property name="mail_from" value="发件人邮箱"/>
    <property name="mail_to" value="收件人邮箱,多个以,隔开"/>
    <property name="mail_cc" value="抄送人邮箱,多个以,隔开"/>

    <property name="mailsubject" value="邮件标题"/>
    <property name="message" value="邮件内容"/>
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="${jmeter.home}\report\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="${jmeter.home}\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" />

    <target name="run">
		<echo message="开始运行"/>
        <antcall target="test" />
		<echo message="脚本运行结束"/>
        <antcall target="report" />
		<echo message="生成测试报告"/>
		<antcall target="sendEmail"/>
		<echo message="发送邮件"/>
    </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="${jmeter.home}\report" includes="*.jmx" />
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>

	<!-- 解决报告中NAN字段显示问题-->
    <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.result.jtlName}"
			  out="${jmeter.result.htmlName}"
			  style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
			  <!--style="${jmeter.home}/extras/jmeter-results-shanhe-me.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="sendEmail">
		<mail mailhost="${mail_host}"
			  ssl="true"
			  user="${mail_username}"
			  password="${mail_password}"
			  mailport="${mail_port}"
			  subject="${mailsubject}"
			  messagemimetype="text/html"
			  tolist="${mail_to}"
                          cclist="${mail_cc}">
		<from address="${mail_from}" />

			<attachments>
				<fileset dir="${jmeter.result.html.dir}">
					<include name="${ReportName}${time}.html" />
					<!--<include name="collapse.png" />
					<include name="expand.png" />-->
				</fileset>
			</attachments>

			<message>
			${message}
			</message>
		</mail>
    </target>
</project>

引用jar包

将下载的jar包放到 ant安装路径下的 \lib 目录下

ant构建

配置好后,到build文件所在目录,执行ant命令就可以正常构建了。

dos窗口执行成功,如下所示:

同时邮箱收到对应的邮件,如下所示:

任务计划

功能配置完成,手动构建功能正常后。跟jenkins对比还差点,毕竟需要手动构建。

那如何达到自动运行的效果呢?

可以创建bat脚本,并创建任务计划来解决。

配置bat脚本如下:

@echo off

echo "start"

call ant -f "build.xml文件路径"

echo "end"

配置bat脚本后,再到我的电脑>右键管理>任务计划程序库>创建任务即可。

这样就解决了脚本不会自动执行的问题了。

总结

个人觉得,可以用jenkins的情况下,自然是用jenkins好,毕竟可扩展的插件也很多。

但ant本地构建,只是写小脚本的话,还是蛮方便的,比如配置邮件方式也挺便捷。

最终看各自所需了。

到此这篇关于Jmeter脱离Jenkins后Ant集成邮件通知的文章就介绍到这了,更多相关Jmeter Jenkins Ant集成邮件通知内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 配置Ant执行Jmeter脚本过程详解

    1.将 Jmeter 下 extras 目录中 ant-jmeter-1.1.1.jar 包拷贝至 ant 安装目录下的lib目录中,否则会报错 ant-jmeter-1.1.1 不存在 2.创建 testcases 文件夹用来存放 Jmeter 脚本文件,创建 test_report 文件夹用来存放测试报告文件 3.testcases 创建 build.xml 文件(从 Jmeter 下的 extras 中将 build.xml 复制到该目录下),所有的 Jmeter 脚本文件都放在此目录下,

  • 如何基于Jenkins构建Jmeter项目

    1.启动 Jenkins(windows 版本) 2.新建自由风格的项目 定时任务 构建操作 安装 HTML Publisher 插件构建后操作 最后保存构建,查看报告 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • jmeter+ant+jenkins自动化测试环境配置搭建过程

    目录 ant下载及环境变量配置 1.ant下载 2.配置ant环境变量 3.检查配置成功与否 ant配置 1.将\apache-jmeter-3.3\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目录 2.配置xml文件 3.修改jmeter下jmeter.properties配置 dos窗口运行脚本 测试报告 配置日期格式 jenkins中任务配置 1.jenkins中创建任务 2.任务配置 3.配置测试报告 构建任务 1.立即构建 2.查看报告 问题总结 一直想

  • 解析Jmeter脱离Jenkins后Ant集成邮件通知问题

    目录 配置ant环境 配置jmeter.properties 配置ant jar包 配置build文件 引用jar包 ant构建 任务计划 总结 之前搭建在本地的Jenkins环境,由于重装系统的原因,环境不能用了.在用jmeter做测试的时候,索性用本地ant构建,运行下来也一样平稳. 结合Jenkins搭建环境,可以参考博文:Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境 我们言归正传,今天来讲下本地的ant构建并发送邮件.配置下来挺顺利也挺简单的,我们

  • Jenkins+Docker持续集成的实现

    目录 一.Jenkins介绍 二.安装部署Jenkins 1. 环境信息 2. 新建Jenkins用户 3. Jenkins安装方式 4. Jenkins授权和访问控制 5. Jenkins系统配置 三.Jenkins构建maven风格的job 1. 新建maven任务 2. 构建任务配置 3. 源码管理配置 4. 构建触发器配置 5. Maven构建设置 四.Jenkins邮件通知设置 1. 配置jenkins自带的邮件功能 2. 安装使用插件Email Extension Plugin 五.

  • 使用GitLab+Jenkins实现持续集成CI环境的示例代码

    目录 一.持续集成简介 1.GitLab 简介 2.Jenkins 简介 3.GitLab 和 GitHub 的区别 4.持续集成系统的工作流程 二.使用 GitLab + Jenkins 实现持续集成(CI)环境 1.安装 Gitlab 1)登录 Gitlab 2)配置邮件报警 3)创建群组 4)创建项目 5)配置免密克隆 2.安装 Jenkins 1)登录 Jenkins,并安装相关插件 2)配置 Jenkins 实现 GitLab 更新代码 3)在 Jenkins 上创建项目 4)将代码发

  • SpringBoot基础教程之集成邮件服务

    一.前言 Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮件发送的功能. Spring 自带了一个 MailSender 的实现 JavaMailSenderImpl,它会使用 JavaMail API 来发送 Email.Spring 或 SpringBoot 应用在发送 Email 之前,我们必须要 JavaMailSenderImpl 装配为 Spring应用上下文的一个 bean. 二

  • Jenkins+maven持续集成的实现

    环境 系统:centos 7 tomcat位置:/usr/local/jbreport/apache-tomcat-8.5.57 jdk位置:/usr/local/jbreport/jdk1.8.0_152 安装Jenkins 下载依赖 wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo 导入密钥 rpm --import https://pkg.jenkins.io/re

  • jenkins插件pipeline集成持续交付管道全面介绍

    目录 前言 Jenkinspipeline是什么? 为什么使用pipeline? enkinsfile支持脚本式ScriptedPipeline和声明式DeclarativePipeline ScriptedPipeline 声明式DeclarativePipeline 使用Jenkinsfile的好处: 关于BlueOcean 前言 前篇博文我们实践了jenkins pipeline的脚本模式,体验到了pipeline的流式构建流程,以及通过bule  ocean更清晰的展示了构建的全过程,下

  • Android实现收到新短信后自动发邮件功能

    本文实例为大家分享了Android实现收到新短信后自动发邮件的具体代码,供大家参考,具体内容如下 开发环境 Android Studio 3.2.1首先,既然跟读短信和发邮件有关,那么就一定要相关的权限,且安装完应用后要手动打开相关权限… // 接收和读取短信 <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="and

  • java实现对服务器的自动巡检邮件通知

    1.需求 之前一直是手动的巡检,然后贴图,最近服务器数量大增,有点忙不过来了.因为一直用的java,对shell脚本不是特别了解,所以这次用java写了个小项目,实现对多服务器,多任务的巡检,巡检结果有故障的会通过邮件通知. 2.功能和效果 巡检的项目主要是服务,硬盘,内存等,命令可配置,巡检结果以日期和服务器为基准输出文件,错误信息通过邮件通知管理运维人员. 3.代码 action: package com.save.action; import java.text.SimpleDateFor

  • python实现用户登陆邮件通知的方法

    本文实例讲述了python实现用户登陆邮件通知的方法.分享给大家供大家参考.具体如下: 这里写在linux计划任务里定时执行,当有新用户登陆时候发送用户名到指定邮箱通知管理员. #!/usr/bin/env python #encoding=utf-8 from smtplib import SMTP import subprocess smtp = "smtp.qq.com" user = '1234567' password = 'xxxx' run_comd = subproce

  • 详解Spring Boot Admin监控服务上下线邮件通知

    本文介绍了Spring Boot Admin监控服务上下线邮件通知,分享给大家,具体如下: 微服务架构下,服务的数量少则几十,多则上百,对服务的监控必不可少. 如果是以前的单体项目,启动了几个项目是固定的,可以通过第三方的监控工具对其进行监控,然后实时告警. 在微服务下,服务数量太多,并且可以随时扩展,这个时候第三方的监控功能就不适用了,我们可以通过Spring Boot Admin连接注册中心来查看服务状态,这个只能在页面查看. 很多时候更希望能够自动监控,通过邮件告警,某某服务下线了这样的功

随机推荐