欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jmeter+ant操作时遇到的问题和解决方法(一)

程序员文章站 2022-03-31 10:21:33
...

转载参考:https://blog.csdn.net/weixin_46457203/article/details/105860961

build.xml文件在其基础上进行二次更新和说明:

一、下面为更新后的build.xml文件:

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

<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
  
    <target name="run">
    	   <antcall target="clear1" />
	<antcall target="test1" />
      	  <antcall target="report1" />
	<antcall target="sendmail1" />
    </target>
	
    <target name="test1">
		  <echo message="开始执行jmeter脚本..."></echo>
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="D:\apache-jmeter-5.4.1" resultlog="C:\Users\Administrator\Desktop\ant\result\ant_jmeter_test_report.jtl">
             <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
            <testplans dir="C:\Users\Administrator\Desktop\ant\script" includes="*.jmx" />
		<property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
		
         <path id="xslt.classpath">
        <fileset dir="D:\apache-jmeter-5.4.1\lib" includes="xalan*.jar"/>
        <fileset dir="D:\apache-jmeter-5.4.1\lib" includes="serializer*.jar"/>
    </path>
	
    <target name="report1">
	<echo message="开始转换执行结果..."></echo>
	<tstamp> <format property="time" pattern="yyyy/MM/dd HH:mm" /></tstamp>
        <xslt classpathref="xslt.classpath"
              force="true"
	 in="C:\Users\Administrator\Desktop\ant\result\ant_jmeter_test_report.jtl"
              out="C:\Users\Administrator\Desktop\ant\html\ant_jmeter_test_report.html"
              style="D:\apache-jmeter-5.4.1\extras\jmeter-results-detail-report_21.xsl">
				<param name="titleReport" expression="测试报告"/> 
				<param name="dateReport" expression="${time}"/>  
       </xslt>  
   	             <!-- jmeter-results-detail-report_21  因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝--> 
        <copy todir="C:\Users\Administrator\Desktop\ant\html">
            <fileset dir="D:\apache-jmeter-5.4.1\extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>			
    </target>

		<target name="clear1">
	<!-- 每次执行前先删除清空jtl和html文件夹,释放空间 -->
		<echo message="释放空间,清空jtl和html文件夹中 ..."></echo>
		<delete dir="C:\Users\Administrator\Desktop\ant\result" />
		<delete dir="C:\Users\Administrator\Desktop\ant\html" />
		<!-- 删除单个文件-->
		<delete file="C:\Users\Administrator\Desktop\ant\ant_jmeter_test_report.rar" />
		<sleep seconds="2"/>  
		<echo message="释放完成 ..."></echo>
	</target>


	<target name="sendmail1">
	<!--把报告进行压缩打包-->
	<jar jarfile="C:\Users\Administrator\Desktop\ant\ant_jmeter_test_report.rar" basedir="C:\Users\Administrator\Desktop\ant\html"/>
	<!--把文件贴到邮件正文-->
	<loadfile property="html" srcFile="C:\Users\Administrator\Desktop\ant\html\ant_jmeter_test_report.html" encoding="UTF-8">
	<filterchain>
			<expandproperties />
		</filterchain>
	</loadfile>
	
	<mail mailhost="smtp.qq.com" 
	mailport="25" subject="邮件标题" 
	messagemimetype="text/html" tolist="收件邮箱1,收件邮箱2,收件邮箱3"
	user="发件邮箱" password="授权码(可在邮箱设置中找到)">
	<from address="发件邮箱"/>
	<!--发送附件-->
	<fileset dir="C:\Users\Administrator\Desktop\ant">
   		 <include name="ant_jmeter_test_report.rar"/>
  	 </fileset>
	<message><![CDATA[ 
	<p>项目组收:
			这是正文最前面(可任意填写邮件正文)
	</p>
	<pre> ${html} </pre>
	<p>"这是正文最后面(可任意填写邮件正文)"</p>
	]]></message>
	</mail>
	</target>
</project>

 二、build.xml可进一步优化项如下:(build.xml文件使用notepad++打开)

优化一:报告名称、压缩包名称变更
ant_jmeter_test_report(尾缀有.jtl,.html,.rar):报告名称、压缩包名称。(存在于第18行、第35行、第36行、第56行、第64行、第66行
、第79行)
PS:如果需要更改ant_jmeter_test_report名称时,尽量全部都同步更新,使用替换操作即可方便更换。

优化二:编写邮件标题
第73行:subject="邮件标题"

优化三:添加多个收件邮箱
第75行:tolist="设置多个收件邮箱,使用英文逗号隔开,注意只能在最外层有双引号"
例如:tolist="[email protected],[email protected],[email protected]"

优化四:编写邮件正文内容
第82-86行:可以任意编写邮件正文内容。

三、注意①:第一行原本为<?xml version="1.0" encoding="GBK"?>,运行时发送的邮件显示为乱码,尝试更改为<?xml version="1.0" encoding="UTF-8"?>之后能正常显示。

       注意②:jmeter安装目录需要替换为自己本地的,例如我本地的jmeter安装目录为D:\apache-jmeter-5.4.1,使用替换操作全部替换即可。(存在于xml文件里面多个地方,同步全部替换掉,第一次出现在第18行)