jmeter+ant操作时遇到的问题和解决方法(一)
转载参考: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行)
上一篇: SSM框架(遇到的问题和解决方法)
下一篇: Deepin遇到的问题和解决方法
推荐阅读
-
Android 表情面板和软键盘切换时跳闪问题的解决方法
-
安装Eclipse ADT插件时遇到的问题与解决方法
-
搭建SSH时的思考和遇到的几个问题的解决方法
-
Android 表情面板和软键盘切换时跳闪问题的解决方法
-
Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法
-
MySQL批量插入和唯一索引问题的解决方法
-
一键GHOST硬盘版 gho_run.exe遇到问题需要关闭问题的解决方法
-
Hive与Oracle之间利用Sqoop进行数据的导入导出时遇到的问题及解决方法
-
安装Eclipse ADT插件时遇到的问题与解决方法
-
Hibernate通过SQL查询常量时只返回第一个字符问题的解决方法