{"id":985,"date":"2018-08-28T16:21:56","date_gmt":"2018-08-28T08:21:56","guid":{"rendered":"https:\/\/blog.jsjs.org\/?p=985"},"modified":"2018-08-28T16:21:56","modified_gmt":"2018-08-28T08:21:56","slug":"jenkins-jmeter-ant-email-html%e5%ae%9e%e6%96%bd%e6%96%b9%e6%a1%88","status":"publish","type":"post","link":"https:\/\/blog.jsjs.org\/?p=985","title":{"rendered":"Jenkins Jmeter Ant Email Html\u5b9e\u65bd\u65b9\u6848"},"content":{"rendered":"\n<p>\u9879\u76ee\u505a\u63a5\u53e3\u81ea\u52a8\u5316\uff0c\u9009\u7528\u7684\u65b9\u6848\u4e3aJenkins + Jmeter + Ant + Email\uff1b\u672c\u7bc7\u6587\u6863\u662f\u5bf9\u5b9e\u65bd\u7684\u603b\u7ed3<\/p>\n\n\n\n<p>\u4f18\u5316\u70b9\u662f\uff1a\u9ed8\u8ba4\u751f\u6210\u4e24\u4efd\u62a5\u544a<\/p>\n\n\n\n<p>\u90ae\u4ef6\u6548\u679c\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180810165822009-1277292665.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u7b2c\u4e00\u79cd\u62a5\u544a\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180810165925212-525479388.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u7b2c\u4e8c\u79cd\u62a5\u544a\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180810170016692-793106593.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u73af\u5883\u51c6\u5907\uff1a<\/p>\n\n\n\n<p>\u3000\u3000CentOS7<\/p>\n\n\n\n<p>\u3000\u3000JDK1.8<\/p>\n\n\n\n<p>\u3000\u3000ant:\u4e0b\u8f7d\u5230\u670d\u52a1\u5668\u4e0a\uff0c\u914d\u7f6e\u597d\u73af\u5883\u53d8\u91cf<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000vim \/etc\/profile\u3000\u3000<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">export ANT_HOME=\/data\/apache-ant-1.10.5\nexport PATH=$ANT_HOME\/bin:$PATH<\/pre>\n\n\n\n<p>Jmeter\u914d\u7f6e<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u53c2\u8003\uff1a\u3000\u3000<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000<a href=\"https:\/\/www.cnblogs.com\/puresoul\/p\/5092628.html\">Jmeter\u6559\u7a0b\u7d22\u5f15\u8d34<\/a>\u3000\u3000\u3000\u3000\u3000\u3000<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000\u3000<a href=\"https:\/\/www.cnblogs.com\/puresoul\/p\/5053035.html\">Jmeter\u9ed8\u8ba4\u62a5\u544a\u4f18\u5316<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000\u3000<a href=\"https:\/\/www.cnblogs.com\/puresoul\/p\/5049433.html\">Jmeter\u62a5\u544a\u4f18\u5316\u4e4bNew XSL stylesheet<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000<a href=\"https:\/\/www.jianshu.com\/nb\/3642392\">\u63a5\u53e3\u81ea\u52a8\u5316Jmeter<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000\u3000<a href=\"https:\/\/www.jianshu.com\/p\/24ef4810e379\" target=\"_blank\" rel=\"noreferrer noopener\">JMeter(6) jenkins\u6d4b\u8bd5\u62a5\u544a\u53ca\u90ae\u4ef6\u4f18\u5316<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u30001.\u4e0b\u8f7dJmeter\u653e\u5728Jenkins\u670d\u52a1\u5668\u5bf9\u5e94\u76ee\u5f55\uff0c\u6ce8\u610f\u4fee\u6539\u9879\u76eebuild.xml<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180809183621860-277111156.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u3000\u3000\u30002.\u4e0b\u8f7djmeter.results.shanhe.me.xsl\u5230Jmeter\/extras\/<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180810180136534-1570786259.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u3000\u3000\u30003.\u4fee\u6539jmeter.properties<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images.cnblogs.com\/OutliningIndicators\/ExpandedBlockStart.gif\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"javascript:void(0);\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\"\/><\/a><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\"> 1 jmeter.save.saveservice.data_type=true\n 2 jmeter.save.saveservice.label=true\n 3 jmeter.save.saveservice.response_code=true\n 4 # response_data is not currently supported for CSV output\n 5 jmeter.save.saveservice.response_data=true\n 6 # Save ResponseData for failed samples\n 7 jmeter.save.saveservice.response_data.on_error=false\n 8 jmeter.save.saveservice.response_message=true\n 9 jmeter.save.saveservice.successful=true\n10 jmeter.save.saveservice.thread_name=true\n11 jmeter.save.saveservice.time=true\n12 jmeter.save.saveservice.subresults=true\n13 jmeter.save.saveservice.assertions=true\n14 jmeter.save.saveservice.latency=true\n15 jmeter.save.saveservice.connect_time=true\n16 jmeter.save.saveservice.samplerData=true\n17 jmeter.save.saveservice.responseHeaders=true\n18 jmeter.save.saveservice.requestHeaders=true\n19 jmeter.save.saveservice.encoding=false\n20 jmeter.save.saveservice.bytes=true\n21 jmeter.save.saveservice.url=true\n22 jmeter.save.saveservice.filename=true\n23 jmeter.save.saveservice.hostname=true\n24 jmeter.save.saveservice.thread_counts=true\n25 jmeter.save.saveservice.sample_count=true\n26 jmeter.save.saveservice.idle_time=true<\/pre>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"javascript:void(0);\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\"\/><\/a><\/figure>\n\n\n\n<p>Jenkins\u7684\u5b89\u88c5\u914d\u7f6e<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">1 wget -O \/etc\/yum.repos.d\/jenkins.repo https:\/\/pkg.jenkins.io\/redhat-stable\/jenkins.repo\n2 rpm --import https:\/\/pkg.jenkins.io\/redhat-stable\/jenkins.io.key\n3 yum install jenkins<\/pre>\n\n\n\n<p>\u3000\u3000\u5b98\u65b9\u5730\u5740\uff1ahttps:\/\/pkg.jenkins.io\/redhat-stable\/<\/p>\n\n\n\n<p>\u3000\u3000\u53c2\u8003\uff1a<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000<a href=\"https:\/\/segmentfault.com\/a\/1190000004639325\">CentOS \u5b89\u88c5 Jenkins<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000<a href=\"https:\/\/www.cnblogs.com\/wf0117\/p\/9054168.html\">jenkins\u90ae\u4ef6\u53d1\u9001jmeter\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000<a href=\"https:\/\/blog.csdn.net\/galen2016\/article\/details\/77975965\" target=\"_blank\" rel=\"noreferrer noopener\">Jenkins\u53d1\u9001\u6d4b\u8bd5\u62a5\u544a\u90ae\u4ef6<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000<a href=\"https:\/\/www.cnblogs.com\/chenchen-tester\/p\/6930200.html\">Jenkins+Jmeter+Ant\u81ea\u52a8\u5316\u96c6\u6210\u53ca\u90ae\u4ef6\u6b63\u6587\u4ee5html\u8f93\u51fa<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000<a href=\"https:\/\/blog.csdn.net\/fullbug\/article\/details\/53024562\" target=\"_blank\" rel=\"noreferrer noopener\">Jenkins \u914d\u7f6e\u90ae\u4ef6\u901a\u77e5<\/a><\/p>\n\n\n\n<p>\u3000\u3000\u56e0\u6743\u9650\u95ee\u9898\uff0c\u6211\u5c06Jenkins\u7528\u6237\u66f4\u6539\u4e3aroot,\u968f\u4fbf\u7aef\u53e3\u66f4\u6539\u4e3a8081\uff0cJenkins\u7684\u4e3b\u76ee\u5f55\u5219\u672a\u505a\u6539\u53d8\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">JENKINS_HOME=\"\/var\/lib\/jenkins\"<br\/>JENKINS_USER=\"root\"\nJENKINS_PORT=\"8081\"<\/pre>\n\n\n\n<p>\u3000\u3000\u9700\u8981\u7684Jenkins\u63d2\u4ef6\uff1a<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000Email Extension Template Plugin<\/p>\n\n\n\n<p>\u3000\u3000Jenkins\u7cfb\u7edf\u8bbe\u7f6e\u8bbe\u7f6eEmail\u4fe1\u606f<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u7cfb\u7edf\u7ba1\u7406\u5458\u90ae\u4ef6\u5730\u5740\u4e00\u5b9a\u8981\u8bbe\u7f6e\uff0c\u5426\u5219\u4f1a\u5bfc\u81f4\u90ae\u4ef6\u53d1\u4e0d\u51fa\u53bb\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180809174609773-1067345585.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u3000\u3000\u3000\u914d\u7f6eExtended E-mail Notification<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000\u6ce8\u610f\uff1a\u3000\u5bc6\u7801\u4e00\u822c\u5e94\u4e3a\u5bf9\u5e94\u90ae\u7bb1\u670d\u52a1\u5668\u7684\u6388\u6743\u5bc6\u7801<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000Jenkins\u81ea\u5e26\u7684\u90ae\u4ef6\u901a\u77e5\u4e5f\u633a\u597d\u7528\u7684\uff01<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180809175103422-1003644392.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u3000\u3000Jenkins\u4e2d\u914d\u7f6eJmeter\u5de5\u7a0b<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u6784\u5efa\u4e00\u4e2a\u81ea\u7531\u98ce\u683c\u7684\u8f6f\u4ef6\u9879\u76ee<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u9879\u76ee\u914d\u7f6e\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000Jmeter\u811a\u672c\u76f4\u63a5\u4e22\u5728Jenkins\u670d\u52a1\u5668\u4e0a\uff0c\u6b64\u5904\u4fdd\u6301\u8def\u5f84\u4e00\u81f4\u5373\u53ef\uff0c\u5982\u4f7f\u7528SVN\/GIT\u8bf7\u53e6\u884c\u914d\u7f6e<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000Jmeter\u811a\u672c\u4e0ebuild.xml\u6587\u4ef6\u653e\u4e00\u4e2a\u76ee\u5f55<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000\u6211\u7684build.xml\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images.cnblogs.com\/OutliningIndicators\/ExpandedBlockStart.gif\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"javascript:void(0);\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\"\/><\/a><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\"> 1 &lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n 2 &lt;project name=\"ant-jmeter-test\" default=\"run\" basedir=\".\">\n 3     &lt;!-- \u9700\u8981\u6539\u6210\u81ea\u5df1\u672c\u5730\u7684 Jmeter \u76ee\u5f55-->\n 4     &lt;property name=\"jmeter.home\" value=\"\/data\/apache-jmeter-4.0\" \/>\n 5     &lt;!-- jmeter\u751f\u6210jtl\u683c\u5f0f\u7684\u7ed3\u679c\u62a5\u544a\u7684\u8def\u5f84-->\n 6     &lt;property name=\"jmeter.result.jtl.dir\" value=\"\/data\/apiTest\" \/>\n 7     &lt;!-- jmeter\u751f\u6210html\u683c\u5f0f\u7684\u7ed3\u679c\u62a5\u544a\u7684\u8def\u5f84-->\n 8     &lt;property name=\"jmeter.result.html.dir\" value=\"\/data\/apiTest\" \/>\n 9     &lt;!-- \u751f\u6210\u7684\u62a5\u544a\u7684\u524d\u7f00-->\n10     &lt;property name=\"ReportName\" value=\"passengerApiReport\" \/>\n11     &lt;property name=\"jmeter.result.jtlName\" value=\"${jmeter.result.jtl.dir}\/${ReportName}.jtl\" \/>\n12     &lt;property name=\"jmeter.result.htmlName\" value=\"${jmeter.result.html.dir}\/${ReportName}.html\" \/>\n13     &lt;property name=\"jmeter.result.htmlInfo\" value=\"${jmeter.result.html.dir}\/${ReportName}Info.html\" \/>\n14\n15     &lt;target name=\"run\">\n16         &lt;antcall target=\"test\" \/>\n17         &lt;antcall target=\"report\" \/>\n18     &lt;\/target>\n19\n20     &lt;target name=\"test\">\n21         &lt;taskdef name=\"jmeter\" classname=\"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask\" \/>\n22         &lt;jmeter jmeterhome=\"${jmeter.home}\" resultlog=\"${jmeter.result.jtlName}\">\n23              &lt;!-- \u58f0\u660e\u8981\u8fd0\u884c\u7684\u811a\u672c\"*.jmx\"\u6307\u5305\u542b\u6b64\u76ee\u5f55\u4e0b\u7684\u6240\u6709jmeter\u811a\u672c-->\n24             &lt;testplans dir=\"\/data\/apiTest\" includes=\"*.jmx\" \/>\n25         &lt;property name=\"jmeter.save.saveservice.output_format\" value=\"xml\"\/>\n26         &lt;\/jmeter>\n27     &lt;\/target>\n28\n29     &lt;path id=\"xslt.classpath\">\n30         &lt;fileset dir=\"${jmeter.home}\/lib\" includes=\"xalan*.jar\"\/>\n31         &lt;fileset dir=\"${jmeter.home}\/lib\" includes=\"serializer*.jar\"\/>\n32     &lt;\/path>\n33\n34\n35     &lt;target name=\"report\">\n36     &lt;tstamp> &lt;format property=\"report.datestamp\" pattern=\"yyyy\/MM\/dd HH:mm\" \/>&lt;\/tstamp>\n37         &lt;xslt\n38               classpathref=\"xslt.classpath\"\n39               force=\"true\"\n40               in=\"${jmeter.result.jtlName}\"\n41               out=\"${jmeter.result.htmlName}\"\n42               style=\"${jmeter.home}\/extras\/jmeter-results-detail-report_21.xsl\">\n43               &lt;param name=\"dateReport\" expression=\"${report.datestamp}\" \/>\n44         &lt;\/xslt>\n45     &lt;xslt\n46               classpathref=\"xslt.classpath\"\n47               force=\"true\"\n48               in=\"${jmeter.result.jtlName}\"\n49               out=\"${jmeter.result.htmlInfo}\"\n50               style=\"${jmeter.home}\/extras\/jmeter.results.shanhe.me.xsl\">\n51               &lt;param name=\"dateReport\" expression=\"${report.datestamp}\" \/>\n52         &lt;\/xslt>\n53         &lt;!-- \u56e0\u4e3a\u4e0a\u9762\u751f\u6210\u62a5\u544a\u7684\u65f6\u5019\uff0c\u4e0d\u4f1a\u5c06\u76f8\u5173\u7684\u56fe\u7247\u4e5f\u4e00\u8d77\u62f7\u8d1d\u81f3\u76ee\u6807\u76ee\u5f55\uff0c\u6240\u4ee5\uff0c\u9700\u8981\u624b\u52a8\u62f7\u8d1d -->\n54         &lt;copy todir=\"${jmeter.result.html.dir}\">\n55             &lt;fileset dir=\"${jmeter.home}\/extras\">\n56                 &lt;include name=\"collapse.png\" \/>\n57                 &lt;include name=\"expand.png\" \/>\n58             &lt;\/fileset>\n59         &lt;\/copy>\n60     &lt;\/target>\n61 &lt;\/project><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"javascript:void(0);\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180809180422910-1913736729.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u6bcf\u592908:50\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180809180939390-931016879.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u6784\u5efa\u65b9\u5f0f\u4e3a\u8fdb\u5165\u5bf9\u5e94\u8def\u5f84\uff0c\u6267\u884cant<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/data\/apiTest\n\/data\/apache-ant-1.10.5\/bin\/ant<\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180809181106975-368887561.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u3000\u3000\u90ae\u4ef6\u6a21\u677f<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u6211\u7684\u90ae\u4ef6\u6a21\u677f\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images.cnblogs.com\/OutliningIndicators\/ExpandedBlockStart.gif\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"javascript:void(0);\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\"\/><\/a><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\"> 1 &lt;!DOCTYPE html>\n 2 &lt;html>\n 3\n 4 &lt;head>\n 5     &lt;meta charset=\"UTF-8\">\n 6     &lt;title>${ENV, var=\"JOB_NAME\"}-\u7b2c${BUILD_NUMBER}\u6b21\u6784\u5efa\u65e5\u5fd7&lt;\/title>\n 7 &lt;\/head>\n 8\n 9 &lt;body leftmargin=\"8\" marginwidth=\"0\" topmargin=\"8\" marginheight=\"4\" offset=\"0\">\n10     &lt;table width=\"95%\" cellpadding=\"0\" cellspacing=\"0\" style=\"font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif\">\n11         &lt;tr>\n12             &lt;td>(\u672c\u90ae\u4ef6\u662f\u7a0b\u5e8f\u81ea\u52a8\u4e0b\u53d1\u7684\uff0c\u8bf7\u52ff\u56de\u590d\uff01)&lt;\/td>\n13         &lt;\/tr>\n14         &lt;tr>\n15             &lt;td>\n16                 &lt;h2> &lt;font color=\"#0000FF\">XXXXX\u63a5\u53e3\u6d4b\u8bd5\u7ed3\u679c - \u4ee5\u9644\u4ef6\u62a5\u544a\u4e3a\u51c6\uff08\u8bf7\u4f7f\u7528\u6d4f\u89c8\u5668\u6253\u5f00\uff09&lt;\/font> &lt;\/h2>&lt;\/td>\n17         &lt;\/tr>\n18         &lt;tr>\n19             &lt;td>\n20                 &lt;br \/> &lt;b>&lt;font color=\"#0B610B\">\u6784\u5efa\u4fe1\u606f&lt;\/font>&lt;\/b>\n21                 &lt;hr size=\"2\" width=\"100%\" align=\"center\" \/>\n22             &lt;\/td>\n23         &lt;\/tr>\n24         &lt;tr>\n25             &lt;td>\n26                 &lt;ul>\n27                     &lt;li>\u9879\u76ee\u540d\u79f0 \uff1a ${PROJECT_NAME}&lt;\/li>\n28                     &lt;li>\u6784\u5efa\u7f16\u53f7 \uff1a \u7b2c${BUILD_NUMBER}\u6b21\u6784\u5efa&lt;\/li>\n29                     &lt;li>\u89e6\u53d1\u539f\u56e0\uff1a ${CAUSE}&lt;\/li>\n30                     &lt;li>\u6784\u5efa\u65e5\u5fd7\uff1a &lt;a href=\"${BUILD_URL}console\">${BUILD_URL}console&lt;\/a>&lt;\/li>\n31                     &lt;li>\u6784\u5efa Url \uff1a &lt;a href=\"${BUILD_URL}\">${BUILD_URL}&lt;\/a>&lt;\/li>\n32                     &lt;li>\u5de5\u4f5c\u76ee\u5f55 \uff1a &lt;a href=\"${PROJECT_URL}ws\">${PROJECT_URL}ws&lt;\/a>&lt;\/li>\n33                     &lt;li>\u9879\u76ee Url \uff1a &lt;a href=\"${PROJECT_URL}\">${PROJECT_URL}&lt;\/a>&lt;\/li>\n34                 &lt;\/ul>\n35             &lt;\/td>\n36         &lt;\/tr>\n37         &lt;tr>\n38             &lt;td>&lt;b>&lt;font color=\"#0B610B\">Changes Since Last Successful Build:&lt;\/font>&lt;\/b>\n39                 &lt;hr size=\"2\" width=\"100%\" align=\"center\" \/>\n40             &lt;\/td>\n41         &lt;\/tr>\n42         &lt;tr>\n43             &lt;td>\n44                 &lt;ul>\n45                     &lt;li>\u5386\u53f2\u53d8\u66f4\u8bb0\u5f55 : &lt;a href=\"${PROJECT_URL}changes\">${PROJECT_URL}changes&lt;\/a>&lt;\/li>\n46         &lt;\/tr>\n47         &lt;tr>\n48             &lt;td>&lt;b>Failed Test Results&lt;\/b>\n49                 &lt;hr size=\"2\" width=\"100%\" align=\"center\" \/>\n50             &lt;\/td>\n51         &lt;\/tr>\n52         &lt;tr>\n53             &lt;td>&lt;pre style=\"font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif\">$FAILED_TESTS&lt;\/pre>\n54                 &lt;br \/>\n55             &lt;\/td>\n56         &lt;\/tr>\n57         &lt;tr>\n58             &lt;td>&lt;b>&lt;font color=\"#0B610B\">\u6784\u5efa\u65e5\u5fd7 (\u6700\u540e 100\u884c):&lt;\/font>&lt;\/b>\n59                 &lt;hr size=\"2\" width=\"100%\" align=\"center\" \/>\n60             &lt;\/td>\n61         &lt;\/tr>\n62         &lt;!-- &lt;tr> &lt;td>Test Logs (if test has ran): &lt;a href=\"${PROJECT_URL}ws\/TestResult\/archive_logs\/Log-Build-${BUILD_NUMBER}.zip\">${PROJECT_URL}\/ws\/TestResult\/archive_logs\/Log-Build-${BUILD_NUMBER}.zip&lt;\/a> &lt;br \/> &lt;br \/> &lt;\/td> &lt;\/tr> -->\n63         &lt;tr>\n64             &lt;td>\n65                 &lt;textarea cols=\"80\" rows=\"30\" readonly=\"readonly\" style=\"font-family: Courier New\">${BUILD_LOG, maxLines=100}&lt;\/textarea>\n66             &lt;\/td>\n67         &lt;\/tr>\n68     &lt;\/table>\n69 &lt;\/body>\n70\n71 &lt;\/html><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"javascript:void(0);\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180809181456363-737157679.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/images2018.cnblogs.com\/blog\/959913\/201808\/959913-20180809181644461-1765637210.png\" alt=\"\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u9879\u76ee\u505a\u63a5\u53e3\u81ea\u52a8\u5316\uff0c\u9009\u7528\u7684\u65b9\u6848\u4e3aJenkins + Jmeter + Ant + Email\uff1b\u672c\u7bc7\u6587\u6863\u662f\u5bf9\u5b9e\u65bd\u7684\u603b\u7ed3 \u4f18\u5316\u70b9\u662f\uff1a\u9ed8\u8ba4\u751f\u6210\u4e24\u4efd\u62a5\u544a \u90ae\u4ef6\u6548\u679c\u56fe\uff1a \u7b2c\u4e00\u79cd\u62a5\u544a\uff1a \u7b2c\u4e8c\u79cd\u62a5\u544a\uff1a \u73af\u5883\u51c6\u5907\uff1a \u3000\u3000CentOS7 \u3000\u3000JDK1.8 \u3000\u3000ant:\u4e0b\u8f7d\u5230\u670d\u52a1\u5668\u4e0a\uff0c\u914d\u7f6e\u597d\u73af\u5883\u53d8\u91cf \u3000\u3000\u3000\u3000vim \/etc\/profile\u3000\u3000 export ANT_HOME=\/data\/apache-ant-1.10.5 export [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-985","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=985"}],"version-history":[{"count":0,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/985\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}