💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
>[danger] # Ant + Jmeter自动执行脚本并且生成测试报告 >[info]## 前置条件 windows (所有工具均支持linux,故linux也可以) 1.下载安装jdk并且正确配置环境变量(包含java开发工具包和java运行环境(jre),因jmeter是java开发,故需要安装jdk) http://www.oracle.com/technetwork/java/javase/downloads/index.html ~~~ 变量名:JAVA_HOME 变量值:电脑上JDK安装的绝对路径 ~~~ ~~~ 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; ~~~ ~~~ 变量名:path %JAVA_HOME%\bin %JAVA_HOME%\jre\bin ~~~ ![](https://img.kancloud.cn/52/b0/52b003feb0b5591089e54bba97dcc7ba_1029x267.PNG) 2.下载ant并且正确配置环境变量(一个自动化工具,通过配置文件,执行一些重复性的任务) http://ant.apache.org/bindownload.cgi ant环境配置: ANT\_HOME:C:\\apache-ant-1.9.13 CLASSPATH:C:\\apache-ant-1.9.13\\lib Path:C:\\apache-ant-1.9.13\\bin ![](https://img.kancloud.cn/fa/bc/fabc0abf945716dd197a879168e2d17c_661x197.PNG) 3.下载jmeter并且正确配置环境变量(性能测试工具,java语言开发。官方提供了与ant结合的jar包,可在ant的配置文件直接使用) jmeter最新版本下载地址:https://jmeter.apache.org/ jmeter历史版本下载地址:http://archive.apache.org/dist/jmeter/binaries/ * JMETER_HOME=> F:\CYL\test\jmeter\apache-jmeter-3.0(根据实际的jmeter解压路径填写) *CLASSPATH=>%JMETER_HOME%\lib\\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; * path =%JMETER_HOME%\bin ![](https://img.kancloud.cn/f4/f7/f4f79fa0a471334f8da20ea41a3dca6e_646x305.PNG) >[info]## 拷贝jar包 将/jmeter/extras/ant-jmeter-1.1.1文件拷贝至/ant/lib/下 ![](https://img.kancloud.cn/a0/fa/a0fad6886a3a5af2eae58eddb4c48fd9_725x508.png) ![](https://img.kancloud.cn/dc/11/dc115bfafea6392e4e9ba7c4e47f0b89_735x505.png) >[info]## 改配置 修改配置文件/jmeter/bin/jmeter.properties,去掉“#”,将jmeter.save.saveservice.output\_format=csv修改为jmeter.save.saveservice.output\_format=xml ![](https://img.kancloud.cn/2b/3c/2b3c2f8b3b8e5759ebdf917de70622d7_564x383.PNG) >[info]## 构造测试目录 ![](https://img.kancloud.cn/14/ae/14ae27043d68c516ba909e7b309d469d_327x150.png) build.xml文件如下 ``` <?xml version="1.0" encoding="UTF8"?> <project name="Jmeter-TestCase" default="run" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddhhmm" /> </tstamp> <!--jmeter的目录--> <property name="jmeter.home" value="D:\soft\jmeter\apache-jmeter-5.4.1\apache-jmeter-5.4.1" /> <property name="jmeter.result.jtl.dir" value="D:\soft\testDemo\resultLog\jtl" /> <property name="jmeter.result.html.dir" value="D:\soft\testDemo\resultLog\html" /> <property name="ReportName" value="TestReport" /> <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"> <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}"> <testplans dir="D:\soft\testDemo\script" includes="Test.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <target name="report"> <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" /> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> </project> ``` jmeter的安装目录及运行脚本后生成的结果目录 ~~~ <!--jmeter的目录--> <property name="jmeter.home" value="C:\apache-jmeter-4.0" /> <property name="jmeter.result.jtl.dir" value="C:\apache-jmeter-4.0\ant_demo\resultLog\jtl" /> <property name="jmeter.result.html.dir" value="C:\apache-jmeter-4.0\ant_demo\resultLog\html" /> ~~~ jmeter运行脚本后生成的文件名称 ~~~ <property name="ReportName" value="TestReport" /> <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" /> ~~~ jmeter所运行的脚本 ``` <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <testplans dir="C:\apache-jmeter-4.0\ant_demo\script" includes="Test.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> ``` 打开cmd运行ant ![](https://img.kancloud.cn/e5/05/e505fcac9466cbb3a69f4a65cc404f68_644x518.PNG) 运行后目录 ![](https://img.kancloud.cn/b4/b4/b4b4b12a1835d04f87c5100fcf5e0972_327x231.png) 浏览器打开HTML文件,显示正确(缺点是min time和max time没有值) ![](https://img.kancloud.cn/d6/bd/d6bdfbe93a426b9e14ac8db31ad866d0_1350x687.PNG) MinTime、MaxTime为什么显示为NaN呢? 解决办法:jmeter 根目录中找到lib下的serializer-2.7.2.jar、xalan-2.7.2.jar,复制到ant的lib中即可! 最终结果如下 ![](https://img.kancloud.cn/b2/21/b22167bbb3e78ac34a7376c53873dbde_1339x505.PNG) >[danger] # Ant + Jenkins自动执行脚本并且生成测试报告 新建并配置一个项目 (一、Jenkins 定时任务触发时间表达式 ) Jenkins采用了著名的UNIX任务调度工具CRON所使用的配置方式。用5个字段代表5个不同的时间单位(中间用空格隔开): 分 时 日 月 星期几 0 2 \* \* \*    表示每天凌晨2点 \*/10 \* \* \* \*   每隔10分钟一次 45 10 \* \* 1-5    每星期的星期一到星期五的10:45分执行 · M-N 指定范围值 · M-N/X 或 \*/X 在指定范围或整个有效范围内按 X 间隔的步骤 · A,B,...,Z 列举了多个值 ``` 每天凌晨2:00跑一次 H 2 * * * 每隔5分钟构建一次 H/5 * * * * 每两小时构建一次 H H/2 * * * 每天中午12点定时构建一次 H 12 * * * 或0 12 * * *(0这种写法也被H替代了) 每天下午18点前定时构建一次 H 18 * * *   每15分钟构建一次 H/15 * * * * 或*/5 * * * *(这种方式已经被第一种替代了,jenkins也不推荐这种写法了)   周六到周日,18点-23点,三小时构建一次 H 18-23/3 * * 6-7 --------------------- ``` 前置条件:正确安装jenkins且成功安装一下插件 ![](https://img.kancloud.cn/8a/65/8a65b5b1ba11b223fb35655e6bd76252_1253x142.PNG) ![](https://img.kancloud.cn/eb/26/eb2669647cf7b72ece52995abf88d5d5_1497x109.PNG) 集成时尽量先创建jenkins项目再构建ant工作目录 ![](https://img.kancloud.cn/63/1e/631e50d3e57b29f776aa1becf5f60520_1222x607.png) ![](https://img.kancloud.cn/99/23/99230e3f89535e368672cd6c17c3a87f_938x457.png) ![](https://img.kancloud.cn/0a/51/0a512ad587e039032ce2b7810f5e2707_903x274.png) **注意:ant构建项目,默认执行的是Jenkins中workspace下的脚本,如果workspace下没有脚本则构建会不错的,我的做法是将脚本和build.xml文件都放置workspace目录下了。** ![](https://img.kancloud.cn/7f/33/7f3376b80a66b45f9dfe5e9075f38446_848x597.png) **注意:Index page\[s\]:的值(TestReport.html)是与build.xml中设置的测试报告名称一致,否则在Jenkins中查看不了测试报告。** ![](https://img.kancloud.cn/d0/45/d0450fccc1da8d60a7c32091cebe4903_922x409.png) 脚本配置完成。 5.5、项目主页,点击立即构建,执行测试 ![](https://img.kancloud.cn/cb/5e/cb5eefe8d582e22dedc4aa1e28def3fd_765x564.png) 继续构建基本完成,打开测试报告存放路径会看到新生成的报告文档