日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS:Jmeter5.2.1+Ant1.10.12+jmeter.results.shanhe.me.xsl(亲测可用)

發布時間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS:Jmeter5.2.1+Ant1.10.12+jmeter.results.shanhe.me.xsl(亲测可用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jmeter+ant

安裝ant

1、下載地址:https://ant.apache.org/bindownload.cgi
2、解壓并剪切到固定目錄

tar -zxvf apache-ant-1.10.12-bin.tar.gz mv apache-ant-1.10.12 /usr/local/

3、配置環境變量vim /etc/profile

#配置ant環境 export ANT_HOME=/usr/local/apache-ant-1.10.12 export PATH=$PATH:$ANT_HOME/bin:$ANT_HOME/lib

4、環境變量生效

source /etc/profile

5、驗證

ant -v

6、jmeter目錄下創建entry_name文件夾(測試項目存放路徑)

cd /usr/local/apache-jmeter-5.2.1 mkdir entry_name

7、在entry_name目錄下面,創建build.xml文件,文件編碼格式必須是UTF-8
jmeter.results.shanhe.me.xsl模板用下面這個build.xml文件

<?xml version="1.0" encoding="UTF-8"?> <project name="接口測試監控" default="run" basedir="."><property name="jmeterPath" value="/usr/local/apache-jmeter-5.2.1"/><!-- jmeter腳本路徑 --><property name="scriptsPath" value="${jmeterPath}/entry_name/jmeter_scripts"/><!-- jmeter測試報告路徑 --><property name="reportPath" value="${jmeterPath}/entry_name/report"/><!-- email配置信息 --><property name="mail_host" value="smtp.126.com"/><property name="mail_port" value="465"/><!-- email發送賬戶密碼 --><property name="username" value="wuyxxxxxx8@126.com"/><property name="password" value="KWHCXXXXXXXMTQCZ"/><property name="mail_from" value="wuyxxxxxx8@126.com"/><!-- mail_to:接收郵件列表,多個用逗號隔開 --><property name="mail_to" value="3967xxx96@qq.com"/><property name="mailsubject" value="Jmeter接口自動化測試報告"/><property name="message" value="今日接口測試任務已執行完畢,詳情請查看附件!!!"/><tstamp><format property="time" pattern="yyyyMMddHHmm" /></tstamp><!-- jmeter環境配置 --><property name="jmeter.home" value="${jmeterPath}"/><!-- jtl測試結果存放路徑 --><property name="jmeter.result.jtl.dir" value="${reportPath}/resultLog/jtl"/><!-- html測試結果存放路徑 --><property name="jmeter.result.html.dir" value="${reportPath}/resultLog/html"/><property name="htmlReportNameSummary" value="TestReport"/><property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}${time}.jtl"/><property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html"/><target name="run"><antcall target="test"/><antcall target="report"/><antcall target="sendEmail"/></target><!-- 執行接口測試 --><target name="test"><echo>執行接口自動化測試用例</echo><taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /><jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"><!-- 聲明要運行的腳本“*.jmx”指包含此目錄下的所有jmeter腳本 --><testplans dir="${scriptsPath}" 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"><echo>生成接口自動化測試報告</echo><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" ><param name="titleReport" expression="${mailsubject}${time}"/> <param name="dateReport" expression="${report.datestamp}"/></xslt> <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 --> <copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.html.dir}/expand.png" /><copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.html.dir}/collapse.png" /></target><target name="sendEmail"><echo>發送測試報告</echo><mail mailhost="${mail_host}" ssl="true"user="${username}"password="${password}"mailport="${mail_port}"subject="${mailsubject}"messagemimetype="text/html"tolist="${mail_to}"><from address="${mail_from}" /><attachments><fileset dir="${jmeter.result.html.dir}"><include name="${htmlReportNameSummary}${time}.html" /><include name="collapse.png" /><include name="expand.png" /></fileset></attachments><message>${message}</message></mail></target> </project>

8、測試項目目錄下創建jmeter_scripts文件夾(腳本存放路徑)

cd /usr/local/apache-jmeter-5.2.1/entry_name mkdir jmeter_scripts

將jmeter腳本放在這個目錄下面,沒有腳本會報錯

9、測試項目目錄下創建report文件夾(測試報告存放路徑)

cd /usr/local/apache-jmeter-5.2.1/entry_name mkdir report

10、將jmeter的extras目錄下的ant-jmeter-1.1.1.jar復制到ant的lib目錄下

cd /usr/local/apache-jmeter-5.2.1/extras/ cp ant-jmeter-1.1.1.jar /usr/local/apache-ant-1.10.12/lib/

11、修改jmeter的bin目錄下jmeter.properties文件
vim jmeter.properties

jmeter.save.saveservice.output_format=xml

12、下載email相關jar包,并將這三個jar包復制到ant的lib目錄下
點擊下載,commons-email-1.5.jar
點擊下載,activation-1.1.1.jar
點擊下載,javax.mail.jar

三個jar包一起下載

13、下載jmeter.results.shanhe.me.xsl模板文件,并將其復制到jmeter的extras目錄下
jmeter.results.shanhe.me.xsl

<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements. See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance withthe License. You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. --><!-- Stylesheet for processing 2.1 output format test result files To uses this directly in a browser, add the following to the JTL file as line 2:<?xml-stylesheet type="text/xsl" href="../extras/jmeter-results-detail-report_21.xsl"?>and you can then view the JTL in a browser --><xsl:output method="html" indent="yes" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" /><!-- Defined parameters (overrideable) --> <xsl:param name="showData" select="'n'"/> <xsl:param name="titleReport" select="'Load Test Results'"/> <xsl:param name="dateReport" select="'date not defined'"/><xsl:template match="testResults"><html><head><title><xsl:value-of select="$titleReport" /></title><style type="text/css">body {font:normal 68% verdana,arial,helvetica;color:#000000;}table tr td, table tr th {font-size: 68%;}table.details tr th{color: #ffffff;font-weight: bold;text-align:center;background:#2674a6;white-space: nowrap;}table.details tr td{background:#eeeee0;white-space: nowrap;}h1 {margin: 0px 0px 5px; font: 165% verdana,arial,helvetica}h2 {margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica}h3 {margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica}.Failure {font-weight:bold; color:red;}img{border-width: 0px;}.expand_link{position=absolute;right: 0px;width: 27px;top: 1px;height: 27px;}.page_details{display: none;}.page_details_expanded{display: block;display/* hide this definition from IE5/6 */: table-row;}</style><script language="JavaScript"><![CDATA[function expand(details_id){document.getElementById(details_id).className = "page_details_expanded";}function collapse(details_id){document.getElementById(details_id).className = "page_details";}function change(details_id){if(document.getElementById(details_id+"_image").src.match("expand")){document.getElementById(details_id+"_image").src = "collapse.png";expand(details_id);}else{document.getElementById(details_id+"_image").src = "expand.png";collapse(details_id);} }]]></script></head><body><xsl:call-template name="pageHeader" /><xsl:call-template name="summary" /><hr size="1" width="95%" align="center" /><xsl:call-template name="pagelist" /><hr size="1" width="95%" align="center" /><xsl:call-template name="detail" /></body></html> </xsl:template><xsl:template name="pageHeader"><h1><xsl:value-of select="$titleReport" /></h1><table width="100%"><tr><td align="left">Date report: <xsl:value-of select="$dateReport" /></td><td align="right">Designed for use with <a href="http://jmeter.apache.org/">JMeter</a> and <a href="http://ant.apache.org">Ant</a>.</td></tr></table><hr size="1" /> </xsl:template><xsl:template name="summary"><h2>Summary</h2><table align="center" class="details" border="0" cellpadding="5" cellspacing="2" width="95%"><tr valign="top"><th># Samples</th><th>Failures</th><th>Success Rate</th><th>Average Time</th><th>Min Time</th><th>Max Time</th></tr><tr valign="top"><xsl:variable name="allCount" select="count(/testResults/*)" /><xsl:variable name="allFailureCount" select="count(/testResults/*[attribute::s='false'])" /><xsl:variable name="allSuccessCount" select="count(/testResults/*[attribute::s='true'])" /><xsl:variable name="allSuccessPercent" select="$allSuccessCount div $allCount" /><xsl:variable name="allTotalTime" select="sum(/testResults/*/@t)" /><xsl:variable name="allAverageTime" select="$allTotalTime div $allCount" /><xsl:variable name="allMinTime"><xsl:call-template name="min"><xsl:with-param name="nodes" select="/testResults/*/@t" /></xsl:call-template></xsl:variable><xsl:variable name="allMaxTime"><xsl:call-template name="max"><xsl:with-param name="nodes" select="/testResults/*/@t" /></xsl:call-template></xsl:variable><xsl:attribute name="class"><xsl:choose><xsl:when test="$allFailureCount &gt; 0">Failure</xsl:when></xsl:choose></xsl:attribute><td align="center"><xsl:value-of select="$allCount" /></td><td align="center"><xsl:value-of select="$allFailureCount" /></td><td align="center"><xsl:call-template name="display-percent"><xsl:with-param name="value" select="$allSuccessPercent" /></xsl:call-template></td><td align="center"><xsl:call-template name="display-time"><xsl:with-param name="value" select="$allAverageTime" /></xsl:call-template></td><td align="center"><xsl:call-template name="display-time"><xsl:with-param name="value" select="$allMinTime" /></xsl:call-template></td><td align="center"><xsl:call-template name="display-time"><xsl:with-param name="value" select="$allMaxTime" /></xsl:call-template></td></tr></table> </xsl:template><xsl:template name="pagelist"><h2>Pages</h2><table align="center" class="details" border="0" cellpadding="5" cellspacing="2" width="95%"><tr valign="top"><th>URL</th><th># Samples</th><th>Failures</th><th>Success Rate</th><th>Average Time</th><th>Min Time</th><th>Max Time</th><th></th></tr><xsl:for-each select="/testResults/*[not(@lb = preceding::*/@lb)]"><xsl:variable name="label" select="@lb" /><xsl:variable name="count" select="count(../*[@lb = current()/@lb])" /><xsl:variable name="failureCount" select="count(../*[@lb = current()/@lb][attribute::s='false'])" /><xsl:variable name="successCount" select="count(../*[@lb = current()/@lb][attribute::s='true'])" /><xsl:variable name="successPercent" select="$successCount div $count" /><xsl:variable name="totalTime" select="sum(../*[@lb = current()/@lb]/@t)" /><xsl:variable name="averageTime" select="$totalTime div $count" /><xsl:variable name="minTime"><xsl:call-template name="min"><xsl:with-param name="nodes" select="../*[@lb = current()/@lb]/@t" /></xsl:call-template></xsl:variable><xsl:variable name="maxTime"><xsl:call-template name="max"><xsl:with-param name="nodes" select="../*[@lb = current()/@lb]/@t" /></xsl:call-template></xsl:variable><tr valign="top"><xsl:attribute name="class"><xsl:choose><xsl:when test="$failureCount &gt; 0">Failure</xsl:when></xsl:choose></xsl:attribute><td><xsl:if test="$failureCount > 0"><a><xsl:attribute name="href">#<xsl:value-of select="$label" /></xsl:attribute><xsl:value-of select="$label" /></a></xsl:if><xsl:if test="0 >= $failureCount"><xsl:value-of select="$label" /></xsl:if></td><td align="center"><xsl:value-of select="$count" /></td><td align="center"><xsl:value-of select="$failureCount" /></td><td align="right"><xsl:call-template name="display-percent"><xsl:with-param name="value" select="$successPercent" /></xsl:call-template></td><td align="right"><xsl:call-template name="display-time"><xsl:with-param name="value" select="$averageTime" /></xsl:call-template></td><td align="right"><xsl:call-template name="display-time"><xsl:with-param name="value" select="$minTime" /></xsl:call-template></td><td align="right"><xsl:call-template name="display-time"><xsl:with-param name="value" select="$maxTime" /></xsl:call-template></td><td align="center"><a href=""><xsl:attribute name="href"><xsl:text/>javascript:change('page_details_<xsl:value-of select="position()" />')</xsl:attribute><img src="expand.png" alt="expand/collapse"><xsl:attribute name="id"><xsl:text/>page_details_<xsl:value-of select="position()" />_image</xsl:attribute></img> </a></td></tr><tr class="page_details"><xsl:attribute name="id"><xsl:text/>page_details_<xsl:value-of select="position()" /></xsl:attribute><td colspan="8" bgcolor="#FF0000"><div align="center"><b>Details for Page "<xsl:value-of select="$label" />"</b><table bordercolor="#000000" bgcolor="#2674A6" border="0" cellpadding="1" cellspacing="1" width="95%"><tr><th>Thread</th><th>Iteration</th><th>Time (milliseconds)</th><th>Bytes</th><th>Success</th></tr><xsl:for-each select="../*[@lb = $label and @tn != $label]"> <tr><td><xsl:value-of select="@tn" /></td><td align="center"><xsl:value-of select="position()" /></td><td align="right"><xsl:value-of select="@t" /></td><!-- TODO allow for missing bytes field --><td align="right"><xsl:value-of select="@by" /></td><td align="center"><xsl:value-of select="@s" /></td></tr></xsl:for-each></table></div></td></tr></xsl:for-each></table> </xsl:template><xsl:template name="detail"><xsl:variable name="allFailureCount" select="count(/testResults/*[attribute::s='false'])" /><xsl:if test="$allFailureCount > 0"><h2>Failure Detail</h2><xsl:for-each select="/testResults/*[not(@lb = preceding::*/@lb)]"><xsl:variable name="failureCount" select="count(../*[@lb = current()/@lb][attribute::s='false'])" /><xsl:if test="$failureCount > 0"><h3><xsl:value-of select="@lb" /><a><xsl:attribute name="name"><xsl:value-of select="@lb" /></xsl:attribute></a></h3><table align="center" class="details" border="0" cellpadding="5" cellspacing="2" width="95%"><tr valign="top"><th>Response</th><th>Failure Message</th><xsl:if test="$showData = 'y'"><th>Response Data</th></xsl:if></tr><xsl:for-each select="/testResults/*[@lb = current()/@lb][attribute::s='false']"><tr><td><xsl:value-of select="@rc | @rs" /> - <xsl:value-of select="@rm" /></td><td><xsl:value-of select="assertionResult/failureMessage" /></td><xsl:if test="$showData = 'y'"><td><xsl:value-of select="./binary" /></td></xsl:if></tr></xsl:for-each></table></xsl:if></xsl:for-each></xsl:if> </xsl:template><xsl:template name="min"><xsl:param name="nodes" select="/.." /><xsl:choose><xsl:when test="not($nodes)">NaN</xsl:when><xsl:otherwise><xsl:for-each select="$nodes"><xsl:sort data-type="number" /><xsl:if test="position() = 1"><xsl:value-of select="number(.)" /></xsl:if></xsl:for-each></xsl:otherwise></xsl:choose> </xsl:template><xsl:template name="max"><xsl:param name="nodes" select="/.." /><xsl:choose><xsl:when test="not($nodes)">NaN</xsl:when><xsl:otherwise><xsl:for-each select="$nodes"><xsl:sort data-type="number" order="descending" /><xsl:if test="position() = 1"><xsl:value-of select="number(.)" /></xsl:if></xsl:for-each></xsl:otherwise></xsl:choose> </xsl:template><xsl:template name="display-percent"><xsl:param name="value" /><xsl:value-of select="format-number($value,'0.00%')" /> </xsl:template><xsl:template name="display-time"><xsl:param name="value" /><xsl:value-of select="format-number($value,'0 ms')" /> </xsl:template></xsl:stylesheet>

14、在build.xml目錄,執行

cd /usr/local/apache-jmeter-5.2.1/entry_name ant 或者 ant -buildfile build.xml

15、查看執行結果及郵件

總結

以上是生活随笔為你收集整理的CentOS:Jmeter5.2.1+Ant1.10.12+jmeter.results.shanhe.me.xsl(亲测可用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。