日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Jmeter与ant整合生成美观的测试报告

發布時間:2024/4/17 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jmeter与ant整合生成美观的测试报告 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? 一直覺得Jmeter生成的測試報告很難看,偶爾發現網上用jmeter-results-detail-report_30.xsl整全ant生成了美觀的測試報告,參考https://blog.csdn.net/zouxiongqqq/article/details/71094245。

? ? ? ? 鑒于對美麗的追求,我決定去嘗試一下。但一入坑,發現問題很多。經過不懈的努力,終于把坑都一一填平了,這里分享一下經驗。

  整個測試報告的基本邏輯是;:

? ? ? ?錄好或者自己編寫jmeter腳本,添加聚合報告、服務器監控、及一些性能監控參數,生成相應的文件放在某個目錄,用ant啟動測試,jmeter數據生成完后,用bat文件將生成的jtl數據生成相應的圖表,然后html把相應的圖表渲染出來。當然可以考慮將生成圖表的操作也寫入ant中,同時將這些數據移到一定指?定的文件夾中,所有這些都可以交給ant來執行。

? ? ? ? 先上幾張最后的效果圖:

?

坑一:

build.xml里面相應的參數應該修改,這里面需要相應的ant的相關知道,我這里附上我使用的腳本

<?xml version="1.0" encoding="UTF-8"?><project name="ant-jmeter-testing" default="run" basedir="."> <property name="jmeter.home" value="F:\dev\apache-jmeter-5.0" /><property name="report.title" value="Performance and interface testing" /><property name="jmeter.result.jtl.dir" value="${jmeter.home}\result" /><property name="jmeter.result.html.dir" value="${jmeter.home}\result" /><property name="ReportName" value="TestReport" /><property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}\${ReportName}.jtl" /><property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}\${ReportName}.html" /><!--設置jmeter生成結果服務器上ip地址 --><property name="jmeter.request.url" value="http://192.168.8.34" /><!--設置失敗率為xx時,html是否標顏色 --><property name="failure.rate" value="0.6" /><!--設置服務器日志地址 --><property name="Result.log" value="http://www.w3school.com.cn" /><!--是否顯示服務器日志地址,0代表顯示,1代表不顯示 --><property name="Is.show.Result.log" value="0" /><!--是否顯示關鍵指標(APT、TPS、Throughput、Hit等)圖片,0代表顯示,1代表不顯示 --><property name="Is.Show.Key.index" value="0" /><!--是否顯示資源(CPU、Memory、io、Network等)圖片,0代表顯示,1代表不顯示 --><property name="Is.Show.Resource" value="0" /><target name="run"><tstamp> <format property="start.report.datestamp" pattern="yyyyMMddHHmmSS" /></tstamp><antcall target="run_TestCase" /><antcall target="build_report" /></target><target name="run_TestCase"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /><jmeter jmeterhome="${jmeter.home}" runremote="false" resultlog="${jmeter.result.jtlName}"><testplans dir="${jmeter.home}\TestCase" includes="login.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/><property name="jmeter.save.saveservice.response_message" value="false" /><jvmarg value="-Xincgc"/> <jvmarg value="-Xms1024m"/><jvmarg value="-Xmx1024m"/> </jmeter></target><path id="xslt.classpath"><fileset dir="${jmeter.home}\lib" includes="xalan*.jar"/><fileset dir="${jmeter.home}\lib" includes="serializer*.jar"/></path><target name="build_report"><tstamp> <format property="end.report.datestamp" pattern="yyyyMMddHHmmSS" /></tstamp><xslt classpathref="xslt.classpath"force="true"in="${jmeter.result.jtlName}"out="${jmeter.result.htmlName}"style="${jmeter.home}\extras\jmeter-results-detail-report_30.xsl"><param name="start_datetime" expression="${start.report.datestamp}"/><param name="end_datetime" expression="${end.report.datestamp}"/><param name="request_url" expression="${jmeter.request.url}"/><param name="failure_rate" expression="${failure.rate}"/><param name="Result_log" expression="${Result.log}"/><param name="Is_show_Result_log" expression="${Is.show.Result.log}"/><param name="Is_Show_Key_index" expression="${Is.Show.Key.index}"/><param name="Is_Show_Resource" expression="${Is.Show.Resource}"/></xslt><copy todir="${jmeter.result.html.dir}"><fileset dir="${jmeter.home}\extras"><include name="collapse.png" /><include name="expand.png" /></fileset></copy></target></project>

必須看懂相應的屬性和任務,創建相應的文件夾

?

坑二:

原帖作者linux上用的是linux系統,我用的是windows系統,里面的shell腳本需要轉化為bat腳本

echo jmeter_home is %JMETER_HOME% cd %JMETER_HOME%\result java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl CPU.jtl --plugin-type PerfMon --generate-png CPU.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl Memory.jtl --plugin-type PerfMon --generate-png Memory.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl IO.jtl --plugin-type PerfMon --generate-png IO.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl Network.jtl --plugin-type PerfMon --generate-png Network.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl Trans.jtl --plugin-type TransactionsPerSecond --generate-png Trans.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl TimesVsThreads.jtl --plugin-type TimesVsThreads --generate-png TimesVsThreads.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl ResponseTimesOverTime.jtl --plugin-type ResponseTimesOverTime --generate-png ResponseTimesOverTime.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl ThroughputVsThreads.jtl --plugin-type ThroughputVsThreads --generate-png ThroughputVsThreads.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl HitsPerSecond.jtl --plugin-type HitsPerSecond --generate-png HitsPerSecond.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl BytesThroughputOverTime.jtl --plugin-type BytesThroughputOverTime --generate-png BytesThroughputOverTime.png java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl HitsPerSecond.jtl --plugin-type HitsPerSecond --generate-csv HitsPerSecond.csv java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl CPU.jtl --plugin-type PerfMon --generate-csv CPU.csv java -jar %JMETER_HOME%\lib\cmdrunner-2.2.jar --tool Reporter --input-jtl Memory.jtl --plugin-type PerfMon --generate-csv Memory.csv

 坑三:

我生成的測試報告在瀏覽器中打開js報錯,我將jmeter-results-detail-report_30.xsl的js里面注掉一些后成功,在些附上該內容

<?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 --><!-- Stylesheet for processing 3.0 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_30.xsl"?>and you can then view the JTL in a browser.Edit by ZHC --><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="'y'"/> <xsl:param name="titleReport" select="'Performance_or_Interface Test Results'"/> <xsl:param name="start_datetime" select="'date not defined'"/> <xsl:param name="end_datetime" select="'date not defined'"/> <xsl:param name="request_url" select="'date not defined'"/> <xsl:param name="failure_rate" select="$failure_rate"/> <xsl:param name="Result_log" select="'date not defined'"/> <xsl:param name="Is_show_Result_log" select="'date not defined'"/> <xsl:param name="Is_Show_Key_index" select="'date not defined'"/> <xsl:param name="Is_Show_Resource" select="'date not defined'"/><xsl:template match="testResults"><html><link type='text/css' rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.css" /><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%;padding:10px 0;}table.details tr th{color: #ffffff;font-weight: bold;text-align:center;background:#2674a6;white-space: nowrap;padding:10px 0;}table.details tr td{background:#eeeee0;white-space: nowrap;padding:10px 0;}h1 {margin: 0px 0px 5px;font-size: 40px;text-align:center;text-decoration:underline;}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;align:center;}ul{margin:0px;padding:0px;}li{margin-bottom:20px;}hr{border:1px dashed red;height:1px;}.top .Failure {font-weight:bold;background:red;}.top .Time3s {font-weight:bold;background:yellow;}.top .Time5s{font-weight:bold; background:orange;}.top .Time8s{font-weight:bold; background:red;} .top .NintyTime3s {font-weight:bold; background:yellow;}.top .NintyTime5s {font-weight:bold; background:orange;}.top .NintyTime8s {font-weight:bold; background: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;}table.Failure_Detail_expanded th{color: #ffffff;font-weight: bold;background:#2674a6;white-space: nowrap;padding:10px;width: 5%;}table.Failure_Detail_expanded td{background:#eeeee0;white-space: nowrap;padding:10px;}.Failure_Detail_collapse{display: none;}.Failure_Detail_expanded{display: block;display/* hide this definition from IE5/6 */: table-row;}#RPSTime3s {font-weight:bold;background:yellow;}#RPSTime5s{font-weight:bold; background:orange;}#RPSTime8s{font-weight:bold; background:red;}#failures{font-weight:bold; background:red;}#show{ display:inline-block; width:60px; height:22px; line-height:22px; background:red; text-align: center; border-radius: 3px; color:#FFF;}#show1{ display:inline-block; width:60px; height:22px; line-height:22px; background:red; text-align: center; border-radius: 3px; color:#FFF;}#yellow_1{ display:inline-block; width:10px; height:10px; line-height:22px; background:yellow; text-align: center; border-radius: 3px; color:#FFF;}#red_1{ display:inline-block; width:10px; height:10px; line-height:22px; background:red; text-align: center; border-radius: 3px; color:#FFF;}#orange_1{ display:inline-block; width:10px; height:10px; line-height:22px; background:orange; text-align: center; border-radius: 3px; color:#FFF;}#failed{ display:inline-block; width:10px; height:10px; line-height:22px; background:red; text-align: center; border-radius: 3px; color:#FFF;}ul,ol{list-style: none;}</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($(("#"+details_id+"_image")).text() == "show"){$(("#"+details_id+"_image")).text("hidden"); expand(details_id);}else{$(("#"+details_id+"_image")).text("show");collapse(details_id);}}]]></script><script language="JavaScript"><![CDATA[function expand1(details_id){document.getElementById(details_id).className = "Failure_Detail_expanded";document.getElementById(details_id).style.display="block";}function collapse1(details_id){document.getElementById(details_id).className = "Failure_Detail_collapse";document.getElementById(details_id).style.display ="none";}function change1(details_id){if($(("#"+details_id+"_image")).text() == "show"){$(("#"+details_id+"_image")).text("hidden"); expand1(details_id);}else{$(("#"+details_id+"_image")).text("show");collapse1(details_id);}}]]></script></head><body><xsl:call-template name="pageHeader" /> <xsl:call-template name="summary" /><hr width="100%" /><xsl:call-template name="pagelist"/><xsl:call-template name="detail" /> <hr width="100%" /><xsl:call-template name="Resource" /> </body></html><script src="http://code.jquery.com/jquery-1.11.0.min.js"></script><script>var IP=$(Request_url).text();$("#show").on("click", function(){if($(this).text() == "show"){$(this).text("hidden")}else{$(this).text("show")}$("#img-box").toggle();});$("#show1").on("click", function(){if($(this).text() == "show"){$(this).text("hidden")}else{$(this).text("show")} $("#img-box1").toggle();});//<![CDATA[function Clockon(){var now=new Date();var year=now.getFullYear(); //getFullYear getYearvar month=now.getMonth();var date=now.getDate();var day=now.getDay();var hour=now.getHours();var minu=now.getMinutes();var sec=now.getSeconds();var week;month=month+1;if(month<10){month="0"+month;}if(date<10){date="0"+date;}if(hour<10){hour="0"+hour;}if(minu<10){minu="0"+minu;}if(sec<10){sec="0"+sec;}var arr_week=new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");week = arr_week[day];//check_time=year+"/"+month+"/"+date+" "+hour+":"+minu;check_time=year+""+month+""+date+""+hour+""+minu;return {Check_times:check_time};//var timer=setTimeout("clockon()", 200);} //]]>//回調jsonp結果,注jsonpCallback的命名要與txt和ajax請求中jsonp參數名稱一致//function jsonpCallback(data) {//var oDiv = document.getElementById("date_check1");//oDiv.innerHTML = data;//var setTime=new Clockon();//if($(date_check1).text()==setTime.Check_times){ // alert("我的小主,耐心點,數據分析需1~2分鐘,請稍后查看!");// console.log("------------");// console.log(setTime.Check_times);//}else{ //var change_time=$(date_check).text().replace('/','').replace('/','').replace(' ','').replace(':','');//var change_time=change_times.substring(0,10);var change_time=$(date_check1).text();document.getElementById('results_path').innerText="/result/html/Report"+change_time+"/TestReport.html";var cpu="CPU.png";var Mem="Memory.png";var io="IO.png";var network="Network.png";var RTO="ResponseTimesOverTime.png";var TVT="TimesVsThreads.png";var ThroughputVT="ThroughputVsThreads.png";var tps="Trans.png";var hps="HitsPerSecond.png";var BTOT="BytesThroughputOverTime.png"; $("#CPU").attr("src", cpu);$("#Memory").attr("src", Mem);$("#IO").attr("src", io);$("#Network").attr("src", network);$("#ResponseTimesOverTime").attr("src", RTO);$("#TimesVsThreads").attr("src", TVT);$("#ThroughputVsThreads").attr("src", ThroughputVT);$("#TPS").attr("src", tps);$("#HitsPerSecond").attr("src", hps);$("#BytesThroughputOverTime").attr("src", BTOT);console.log("+++++++++++");console.log(change_time);//}//}//ajax跨域獲取txt數據//function Get_date() {// var url = '../../build_conf.txt';// $.ajax({// url: url,// async: false,// data: '',// dataType: 'jsonp',// jsonp: 'jsonpCallback',// success: function(data) {// console.log(data);// },// error: function(msg) {// console.log(msg);// }// });// };// //var txt=new Get_date(); //setTime();</script><script language="JavaScript">document.querySelector('#isshow_Key_index').style.display = document.querySelector('#isshow_Keyindex').innerText === '1' ? 'none' : 'block';document.querySelector('#isshow_Key_index1').style.display = document.querySelector('#isshow_Keyindex').innerText === '1' ? 'none' : 'block';document.querySelector('#isshow_Resource_usage').style.display = document.querySelector('#isshow_Resource').innerText === '1' ? 'none' : 'block';document.querySelector('#isshow_Result_log').style.display = document.querySelector('#isshow_Resultlog').innerText === '1' ? 'none' : 'block';</script></xsl:template><xsl:template name="pageHeader"><h1><xsl:value-of select="$titleReport" /></h1><table width="100%"><tr><!-- 獲取requestHeader數據 --><!-- xsl:variable name="URL" select="/testResults/httpSample/requestHeader" / --><!-- 從獲取的URL中截取數據,第二代表起始位置,第三位代表長度 --><!-- xsl:variable name="newURL" select="substring($URL, 94, 30)" / --> <!-- 已換行符來截取,before代表換行符之前的數據 --><!-- xsl:variable name="remaining" select="substring-before($newURL, ' ')" / --> <ul><li><b>Period:</b> <xsl:value-of select="$start_datetime" /> - <xsl:value-of select="$end_datetime" /></li><li><b>Results in Session:</b><span id="results_path" align="left"></span></li><li id="isshow_Result_log"><b>Server Result log:</b><a><xsl:attribute name="href"><xsl:value-of select="$Result_log" /></xsl:attribute><xsl:value-of select="$Result_log" /></a></li></ul><td id="date_check" align="left" style="display:none" ><xsl:value-of select="$end_datetime" /></td><td id="date_check1" align="left" style="display:none" ></td><!-- request_url表示build.xml中jmeter收集結果服務器請求地址 --><td id="Request_url" align="left" style="display:none" ><xsl:value-of select="$request_url" /></td><td style="display:none" align="left" id="isshow_Keyindex" ><xsl:value-of select="$Is_Show_Key_index" /></td> <td style="display:none" align="left" id="isshow_Resource" ><xsl:value-of select="$Is_Show_Resource" /></td><td style="display:none" align="left" id="isshow_Resultlog" ><xsl:value-of select="$Is_show_Result_log" /></td><!--td align="center">Host: <xsl:value-of select="$remaining" /></td><td align="right"><a href="./TestLog.html">測試日志</a></td --></tr></table><hr width="100%" /> </xsl:template><xsl:template name="Resource"><h2 id="isshow_Resource_usage">Resource usage:<a href="javascript:void(0);" id="show1">show</a></h2> <div><div style="display:none" id="img-box1" class="container-fluid"><div class="row"><div class="col-md-6"><ul><li><h2>CPU</h2></li><li><img id="CPU"/></li><li><h2>Memory</h2></li><li><img id="Memory"/></li></ul></div><div class="col-md-6"><ul><li><h2>IO</h2></li><li><img id="IO" /></li><li><h2>Network</h2></li><li><img id="Network" /></li></ul></div></div></div></div> </xsl:template><xsl:template name="summary"><h2> Transaction Summary【Fail:<span id="failed"></span>】</h2><table align="center" class="details" border="0" cellpadding="5" cellspacing="2" width="95%"><tr valign="top"><th>Total Transacthion</th><th>Total Pass</th><th>Total Fail</th><th>Passing rate</th><th>Failure rate</th><th id="isshow_Key_index">Dedail</th></tr><tr valign="top" class="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="allFailurePercent" select="$allFailureCount div $allCount" /><!-- <xsl:attribute name="class"><xsl:choose><xsl:when test="$allFailureCount > 0">Failure</xsl:when></xsl:choose></xsl:attribute> --><td align="center"><xsl:value-of select="$allCount" /></td><td align="center"><xsl:value-of select="$allSuccessCount" /></td><xsl:choose><xsl:when test="$allFailureCount > 0"><td align="center" style="font-weight:bold;background:red;"><xsl:value-of select="$allFailureCount" /></td></xsl:when><xsl:otherwise><td align="center"><xsl:value-of select="$allFailureCount" /></td></xsl:otherwise></xsl:choose><td align="center"><xsl:call-template name="display-percent"><xsl:with-param name="value" select="$allSuccessPercent" /></xsl:call-template></td><td align="center"><xsl:choose><xsl:when test="$allFailurePercent >= $failure_rate "><xsl:attribute name="class"><xsl:choose><xsl:when test="$allFailurePercent >= $failure_rate">Failure</xsl:when></xsl:choose></xsl:attribute></xsl:when> </xsl:choose><xsl:call-template name="display-percent"><xsl:with-param name="value" select="$allFailurePercent" /></xsl:call-template> </td><td align="center" id="isshow_Key_index1"><a href="javascript:void(0);" id="show">show</a></td></tr></table><div><div style="display:none" id="img-box" class="container-fluid"><div class="row"><div class="col-md-6"><ul><li><h2>ResponseTimesOverTime</h2></li><li><img id="ResponseTimesOverTime" /></li><li><h2>TimesVsThreads</h2></li><li><img id="TimesVsThreads" /></li></ul></div><div class="col-md-6"><ul><li><h2>ThroughputVsThreads</h2></li><li><img id="ThroughputVsThreads" /></li><li><h2>BytesThroughputOverTime</h2></li><li><img id="BytesThroughputOverTime" /></li></ul></div></div><div class="row"><div class="col-md-6"><ul><li><h2>HitsPerSecond</h2></li><li><img id="HitsPerSecond" /></li></ul></div><div class="col-md-6"><ul><li><h2>TPS</h2></li><li><img id="TPS" /></li></ul></div></div></div></div> </xsl:template><xsl:template name="pagelist"><h2> Transaction【Fail:<span id="failed"></span>,Avg:大于3s <span id="yellow_1"></span> 大于5s <span id="orange_1"></span> 大于8s <span id="red_1"></span>,90% line:大于3s <span id="yellow_1"></span> 大于5s <span id="orange_1"></span> 大于8s <span id="red_1"></span>】</h2><table align="center" class="details" border="0" cellpadding="5" cellspacing="2" width="95%"><tr valign="top"><th>Transacthion Name</th><th>Transacthion</th><th>Pass</th><th>Fail</th><th>Passing Rate</th><th>Failure Rate</th><th>Average Time</th><th>Min Time</th><th>Max Time</th><th>90% Line</th><th>QPS</th><th>Dedail</th></tr><xsl:for-each select="/testResults/*[not(@lb = preceding::*/@lb)]" ><!-- 按平均時間排序 --><xsl:sort select="sum(../*[@lb = current()/@lb]/@t) div count(../*[@lb = current()/@lb])" data-type="number" order="descending"/><xsl:variable name="label" select="@lb" /><!-- 統計所有事務總數 --> <xsl:variable name="count" select="count(../*[@lb = current()/@lb])" /><!-- 統計執行失敗的事務總數 --><xsl:variable name="ffailureCount" select="../*[@lb = current()/@lb][attribute::s='false']"/><xsl:variable name="failureCount"> <!--xsl:if test="sting-length(normalize-space($sChorus))=0"--><xsl:if test="not($ffailureCount)"><xsl:value-of select="0" /></xsl:if><!--xsl:if test="sting-length(normalize-space($sChorus))>0"--><xsl:if test="$ffailureCount"><xsl:value-of select="count(../*[@lb = current()/@lb][attribute::s='false'])" /></xsl:if></xsl:variable><!-- 統計執行成功的事務總數 --><xsl:variable name="ssuccessCount" select="../*[@lb = current()/@lb][attribute::s='true']"/><xsl:variable name="successCount"> <!--xsl:if test="sting-length(normalize-space($sChorus))=0"--><xsl:if test="not($ssuccessCount)"><xsl:value-of select="0" /></xsl:if><!--xsl:if test="sting-length(normalize-space($sChorus))>0"--><xsl:if test="$ssuccessCount"><xsl:value-of select="count(../*[@lb = current()/@lb][attribute::s='true'])" /></xsl:if></xsl:variable><!--xsl:variable name="successPercent" select="$successCount div $count" / --><xsl:variable name="successPercent"> <xsl:if test="$count = 0"><xsl:value-of select="0" /></xsl:if><xsl:if test="$count > 0"><xsl:value-of select="$successCount div $count" /></xsl:if></xsl:variable><xsl:variable name="failurePercent"> <xsl:if test="$count = 0"><xsl:value-of select="0" /></xsl:if><xsl:if test="$count > 0"><xsl:value-of select="$failureCount div $count" /></xsl:if></xsl:variable><xsl:variable name="totalTime" select="sum(../*[@lb = current()/@lb][attribute::s='true']/@t)"/><xsl:variable name="averageTime"> <xsl:if test="$successCount = 0"><xsl:value-of select="0" /></xsl:if><xsl:if test="$successCount > 0"><xsl:value-of select="$totalTime div $successCount" /></xsl:if></xsl:variable><xsl:variable name="minTime"><xsl:call-template name="min"><xsl:with-param name="nodes" select="../*[@lb = current()/@lb][attribute::s='true']/@t" /></xsl:call-template></xsl:variable><xsl:variable name="maxTime"><xsl:call-template name="max"><xsl:with-param name="nodes" select="../*[@lb = current()/@lb][attribute::s='true']/@t" /></xsl:call-template></xsl:variable><!-- new add 90% line time --><xsl:variable name="nintyTime"><xsl:call-template name="lineTime"><xsl:with-param name="nodes" select="../*[@lb = current()/@lb][attribute::s='true']/@t" /></xsl:call-template></xsl:variable><xsl:variable name="qpsTime"> <xsl:if test="$totalTime = 0"><xsl:value-of select="0" /></xsl:if><xsl:if test="$totalTime > 0"><xsl:value-of select="$successCount * 1000 div $totalTime" /></xsl:if></xsl:variable><tr valign="top" class="top"><td align="center"><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="$successCount" /></td><td align="center"><xsl:choose><!-- 失敗用例標紅顯示 --><xsl:when test="$failureCount > 0"><xsl:attribute name="class"><xsl:choose><xsl:when test="$failureCount > 0">Failure</xsl:when></xsl:choose></xsl:attribute></xsl:when></xsl:choose><xsl:value-of select="$failureCount" /></td><td align="center"><xsl:call-template name="display-percent"><xsl:with-param name="value" select="$successPercent" /></xsl:call-template></td><td align="center"><xsl:choose><xsl:when test="$failurePercent >= $failure_rate "><xsl:attribute name="class"><xsl:choose><xsl:when test="$failurePercent >= $failure_rate">Failure</xsl:when></xsl:choose></xsl:attribute></xsl:when> </xsl:choose><xsl:call-template name="display-percent"><xsl:with-param name="value" select="$failurePercent" /></xsl:call-template></td><td align="center"><xsl:choose><!-- 平均時間超過8s,顯示紅色 --><xsl:when test="$averageTime > 8000"><xsl:attribute name="class"><xsl:choose><xsl:when test="$averageTime > 8000">Time8s</xsl:when></xsl:choose></xsl:attribute></xsl:when><!-- 平均時間超過5s,顯示橙色 --><xsl:when test="$averageTime > 5000"><xsl:attribute name="class"><xsl:choose><xsl:when test="$averageTime > 5000">Time5s</xsl:when></xsl:choose></xsl:attribute></xsl:when><!-- 平均時間超過3s,顯示黃色 --><xsl:when test="$averageTime > 3000"><xsl:attribute name="class"><xsl:choose><xsl:when test="$averageTime > 3000">Time3s</xsl:when></xsl:choose></xsl:attribute></xsl:when></xsl:choose><xsl:call-template name="display-time"><xsl:with-param name="value" select="$averageTime" /></xsl:call-template></td><td align="center"><xsl:call-template name="display-time"><xsl:with-param name="value" select="$minTime" /></xsl:call-template></td><td align="center" ><xsl:call-template name="display-time"><xsl:with-param name="value" select="$maxTime" /></xsl:call-template></td><!-- Page頁面添加90% LineTime --><td align="center"><xsl:choose><!-- 90%時間超過8s,顯示紅色 --><xsl:when test="$nintyTime > 8000"><xsl:attribute name="class"><xsl:choose><xsl:when test="$nintyTime > 8000">NintyTime8s</xsl:when></xsl:choose></xsl:attribute></xsl:when><!-- 90%時間超過5s,顯示橙色 --><xsl:when test="$nintyTime > 5000"><xsl:attribute name="class"><xsl:choose><xsl:when test="$nintyTime > 5000">NintyTime5s</xsl:when></xsl:choose></xsl:attribute></xsl:when><!-- 90%時間超過3s,顯示黃色 --><xsl:when test="$nintyTime > 3000"><xsl:attribute name="class"><xsl:choose><xsl:when test="$nintyTime > 3000">NintyTime3s</xsl:when></xsl:choose></xsl:attribute></xsl:when></xsl:choose><xsl:call-template name="display-time"><xsl:with-param name="value" select="$nintyTime" /></xsl:call-template></td><td align="center"><xsl:call-template name="display-qps"><xsl:with-param name="value" select="$qpsTime" /></xsl:call-template></td><td align="center"><a href="" id="" style="display:inline-block; width:60px; height:22px; line-height:22px; background:red; text-align: center; border-radius: 3px; color:#FFF;" ><xsl:attribute name="href"><xsl:text/>javascript:change('page_details_<xsl:value-of select="position()" />')</xsl:attribute><xsl:attribute name="id"><xsl:text/>page_details_<xsl:value-of select="position()" />_image</xsl:attribute>show</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 Transaction "<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>Pass(true/false)</th></tr> <xsl:for-each select="../*[@lb = $label and @tn != $label]"><xsl:variable name="responsetime" select="@t" /><xsl:variable name="failuress" select="@s" /><tr><td align="center"><xsl:value-of select="@tn" /></td><td align="center"><xsl:value-of select="position()" /></td><td align="center"><xsl:choose><!-- 時間超過8s,顯示紅色 --><xsl:when test="$responsetime > 8000"><xsl:attribute name="id"><xsl:choose><xsl:when test="$responsetime > 8000">RPSTime8s</xsl:when></xsl:choose></xsl:attribute></xsl:when><!-- 時間超過5s,顯示橙色 --><xsl:when test="$responsetime > 5000"><xsl:attribute name="id"><xsl:choose><xsl:when test="$responsetime > 5000">RPSTime5s</xsl:when></xsl:choose></xsl:attribute></xsl:when><!-- 時間超過3s,顯示黃色 --><xsl:when test="$responsetime > 3000"><xsl:attribute name="id"><xsl:choose><xsl:when test="$responsetime > 3000">RPSTime</xsl:when></xsl:choose></xsl:attribute></xsl:when></xsl:choose><xsl:value-of select="@t" /></td><!-- TODO allow for missing bytes field --><td align="center"><xsl:value-of select="@by" /></td><td align="center"><xsl:choose><!-- 失敗用例標紅顯示 --><xsl:when test="$failuress='false'"><xsl:attribute name="id"><xsl:choose><xsl:when test="$failuress='false'">failures</xsl:when></xsl:choose></xsl:attribute></xsl:when></xsl:choose><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>Transaction 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> :<a href="" id="" style="display:inline-block; width:60px; height:22px; line-height:22px; background:red; text-align: center; border-radius: 3px; color:#FFF;" ><xsl:attribute name="href"><xsl:text/>javascript:change1('Failure_Detail_<xsl:value-of select="position()" />')</xsl:attribute><xsl:attribute name="id"><xsl:text/>Failure_Detail_<xsl:value-of select="position()" />_image</xsl:attribute>show</a> </h3><table class="details" bordercolor="#000000" bgcolor="#2674A6" style="display:none;" border="0" cellpadding="1" cellspacing="1" width="95%" align="center" ><xsl:attribute name="id"><xsl:text/>Failure_Detail_<xsl:value-of select="position()" /></xsl:attribute><tr valign="top"><th align="center">Response</th><th align="center">Failure Message</th><xsl:if test="$showData = 'y'"><th align="left">Response Data</th></xsl:if></tr><xsl:for-each select="/testResults/*[@lb = current()/@lb][attribute::s='false']"><tr><td align="center"><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="responseData" /></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)">0.00</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)">0.00</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><!-- 90% line time --> <xsl:template name="lineTime"><xsl:param name="nodes" select="/.." /><xsl:choose><xsl:when test="not($nodes)">0.00</xsl:when><xsl:otherwise><xsl:for-each select="$nodes"><xsl:sort data-type="number" /><!-- last() 返回當前上下文中的最后一個節點位置數 --><!-- ceiling(number) 返回大于number的最小整數 --><!-- floor(number) 返回不大于number的最大整數 --><!-- position() 返回當前節點位置的數字 --><!-- number(object) 使對象轉換成數字 --><xsl:choose><!-- 當只有一個節點時,向上取整 --><xsl:when test="last() = 1"><xsl:if test="position() = ceiling(last()*0.9)"><xsl:value-of select="number(.)" /></xsl:if></xsl:when><xsl:otherwise><xsl:if test="position() = floor(last()*0.9)"><xsl:value-of select="number(.)" /></xsl:if></xsl:otherwise></xsl:choose></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.00 ms')" /> </xsl:template><xsl:template name="display-qps"><xsl:param name="value" /><xsl:value-of select="format-number($value,'0.000 /s')" /> </xsl:template></xsl:stylesheet>

?

轉載于:https://www.cnblogs.com/linwenbin/p/10985403.html

總結

以上是生活随笔為你收集整理的Jmeter与ant整合生成美观的测试报告的全部內容,希望文章能夠幫你解決所遇到的問題。

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

成人av电影在线 | 免费激情在线电影 | 天堂av在线免费观看 | 日本成人中文字幕在线观看 | 免费裸体视频网 | 视频在线日韩 | 在线之家免费在线观看电影 | 在线观看免费av片 | 视频在线在亚洲 | 日韩理论电影在线 | 国产手机在线观看 | 久久在线一区 | 免费国产亚洲视频 | 一区二区精品在线 | 欧美性大战久久久久 | 日韩av在线一区二区 | 亚洲少妇xxxx | 蜜桃av观看 | 91精品视频导航 | 日本女人的性生活视频 | 91免费网| 欧美在线视频第一页 | 久久尤物电影视频在线观看 | 午夜精品在线看 | 免费试看一区 | 九九欧美视频 | 久草久 | 精品久久久国产 | 免费在线成人av电影 | 国产精品少妇 | 国产精品资源网 | 欧美成人性网 | 久久久久久免费网 | 99久久99久久免费精品蜜臀 | 国产特级毛片aaaaaaa高清 | 97超碰人人澡人人爱学生 | 91豆麻精品91久久久久久 | 中文字幕人成乱码在线观看 | 亚洲欧美日韩国产 | 久久国产精品99久久久久久老狼 | 美女在线免费观看视频 | 一二三久久久 | 久久久久国产精品一区 | 99热在线国产 | 精品国产一区二区三区在线 | 免费精品视频在线 | 国产一区二区三区黄 | 欧美大香线蕉线伊人久久 | 日韩在线观看中文字幕 | 日韩精品视频在线观看免费 | 国产手机av| 韩国一区二区三区视频 | 日韩影视在线观看 | 91在线视频免费播放 | 亚洲涩涩一区 | 免费色视频在线 | 天天干天天摸天天操 | 国产精品午夜在线观看 | 日日爽 | 亚洲免费在线看 | 国产精品中文久久久久久久 | 一级欧美一级日韩 | 亚洲黄色免费电影 | 久久综合免费视频影院 | 国产精品久久久久久久久久ktv | 欧美韩国日本在线 | 久久精品久久精品久久精品 | 国产精品99久久久久久久久久久久 | 亚洲国产美女精品久久久久∴ | 国产福利一区在线观看 | 精品一区二区免费在线观看 | 国产日韩在线看 | av免费在线网 | 久艹视频免费观看 | 欧美精品一区二区在线观看 | 99久久精品免费看国产免费软件 | 中文字幕av专区 | 久草在线视频看看 | 免费福利在线观看 | 欧美精选一区二区三区 | 国产精品久久久免费 | 国产一区二区三区视频在线 | 在线视频91| 久久夜色网 | 亚洲国产资源 | 婷婷综合久久 | 六月丁香伊人 | 91超级碰碰 | 国产一区二区日本 | 中文在线中文a | 久久精品亚洲 | 久久九九免费视频 | 国产精品一区二区免费视频 | 国产精品视频区 | 在线影视 一区 二区 三区 | 亚洲一区二区精品视频 | 成年人免费电影 | 日韩免费区 | 国产成人精品一区二区三区在线观看 | 麻豆影视网 | 97超视频 | 久久久精品国产免费观看一区二区 | 欧美日韩亚洲第一 | 亚洲国内在线 | 亚洲天天干 | 久久亚洲精品国产亚洲老地址 | 丁香婷婷综合激情五月色 | 欧美极品少妇xbxb性爽爽视频 | 美女黄频在线观看 | 91成人免费 | 久久99精品视频 | 国产精品一区在线观看你懂的 | 久久免费精品国产 | 国产999精品视频 | 二区中文字幕 | 91精品国产麻豆 | 69国产成人综合久久精品欧美 | 久久成人黄色 | 免费在线日韩 | 国产99久久九九精品免费 | 色婷婷福利 | 在线激情小视频 | 超碰在线人人爱 | 在线免费性生活片 | 韩国精品一区二区三区六区色诱 | 天天射综合 | 一区国产精品 | 欧美在线视频一区二区 | 亚洲精品天天 | 狠狠色丁香久久婷婷综合_中 | 日本精品中文字幕在线观看 | 97视频网址 | 国产精品原创av片国产免费 | 国产 日韩 欧美 在线 | 射久久| 丁香六月久久综合狠狠色 | 久久综合免费 | 日韩一级黄色片 | 欧美 另类 交 | 国产精品美乳一区二区免费 | 亚州国产精品久久久 | 亚洲欧美精品一区 | www.色com| 国产探花在线看 | 国产在线观看99 | 欧美精品在线免费 | 91喷水| 2019免费中文字幕 | 国产片网站 | 国产精品一区在线观看你懂的 | 91超级碰碰 | 狠狠色丁香九九婷婷综合五月 | 成年人在线免费看视频 | 91经典在线| 日韩欧美一区二区三区黑寡妇 | 免费在线看v | 精品国产一区二区三区在线观看 | 欧美 激情 国产 91 在线 | 99精品影视| 友田真希av| 亚洲精品高清在线 | 日韩一区二区三 | 国产精品自拍在线 | 精品一区二区免费视频 | 在线视频日韩 | 久久国内精品99久久6app | 中文av不卡 | 久久久久久久久国产 | 久久国产精品一区二区 | 人人擦| 婷婷六月天天 | 国产精品乱码久久久 | 欧美一级久久 | 丁香5月婷婷 | 国产精品美女在线观看 | 中文字幕久久精品亚洲乱码 | 91亚洲精品乱码久久久久久蜜桃 | 天堂在线视频免费观看 | 激情久久久 | 啪啪免费视频网站 | 免费日韩av片 | 在线观看国产高清视频 | 欧美va在线观看 | 久久无码精品一区二区三区 | 亚洲精品视频免费在线观看 | 日韩在线观看一区二区三区 | 久久久精品日本 | 国产精品一区免费看8c0m | 夜夜操狠狠操 | 国产在线观看中文字幕 | 天天干,天天草 | 国产色网| 免费福利片2019潦草影视午夜 | 最新国产视频 | 亚洲综合色丁香婷婷六月图片 | 97超碰免费在线 | 日韩精品欧美视频 | 91视频免费国产 | 狠狠gao | av亚洲产国偷v产偷v自拍小说 | 日韩色视频在线观看 | 色五月色开心色婷婷色丁香 | 免费观看一区二区三区视频 | 久久伊人爱 | 国产欧美久久久精品影院 | 奇米影视8888在线观看大全免费 | 91精彩视频在线观看 | 欧美激情精品 | 欧美在线视频一区二区三区 | 91麻豆精品91久久久久同性 | 日本字幕网 | ww亚洲ww亚在线观看 | 免费国产一区二区视频 | 成人a在线 | 一区二区三区四区影院 | 亚洲精品国产高清 | 久久不射影院 | 波多野结衣精品视频 | 在线观看视频三级 | 日韩在线视频精品 | 亚洲女在线 | 日韩高清av在线 | 精品无人国产偷自产在线 | 黄色毛片电影 | 美女一二三区 | 亚洲国产成人精品在线观看 | 综合色爱| 久久综合丁香 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产丝袜制服在线 | 手机看片午夜 | 中文字幕精品一区 | 伊人成人久久 | 久草在线视频网 | 国产精品网红直播 | 欧美性天天 | 中文字幕日本在线观看 | 精品在线视频一区 | 日韩精品在线观看视频 | 激情网五月 | 99久久国产免费免费 | 国产亚洲精品免费 | 九草在线观看 | 欧美日韩国产在线观看 | 中文字幕在线免费观看 | 天天干天天插 | 精品国产电影一区二区 | 高清国产一区 | 免费看高清毛片 | 久久婷婷网 | 涩av在线| 超碰97在线资源站 | 91精品欧美一区二区三区 | 日韩伦理一区二区三区av在线 | 中文字幕亚洲精品在线观看 | 欧美最猛性xxx | 2000xxx影视| 99视频| 久久国产高清 | 成人在线视频你懂的 | 久99久在线 | 国产中文字幕视频 | 国产电影黄色av | 日韩在线视频一区二区三区 | 精品一区二区视频 | 亚洲成人中文在线 | 欧美精品乱码99久久影院 | 久久久 精品 | 久久久99精品免费观看乱色 | 麻豆91在线 | 成人日批视频 | 91成人观看 | 黄色91免费观看 | 成人影片在线播放 | 激情欧美日韩一区二区 | 中文字幕永久免费 | 久久免费黄色网址 | 99视频在线精品免费观看2 | 日韩久久精品 | 18国产精品白浆在线观看免费 | 亚洲精品综合在线观看 | 九九精品视频在线看 | 成人夜晚看av | 久久久69| 中文字幕资源在线 | 亚洲精品乱码白浆高清久久久久久 | 欧洲色综合 | 欧美国产日韩在线观看 | 91成人在线观看高潮 | 免费国产一区二区视频 | 国产精品久久久久久久99 | 色婷婷精品大在线视频 | 国产一级在线免费观看 | 在线你懂 | 丁香在线观看完整电影视频 | 亚洲免费国产视频 | 波多野结衣在线播放一区 | 亚洲情感电影大片 | 国产伦理久久精品久久久久_ | 2023国产精品自产拍在线观看 | 成人在线视频一区 | 午夜美女影院 | 91免费版在线观看 | 国产精品美女久久久久久免费 | 久久草草影视免费网 | 天天干,天天干 | 久久免费视频精品 | 免费色婷婷 | 精品中文字幕在线播放 | 久久人人爽人人爽 | 国产午夜精品一区二区三区 | 精久久久久| 日韩精品专区 | 久久视频在线看 | 久久国产精品第一页 | 成人动漫一区二区三区 | 依人成人综合网 | 色综合色综合色综合 | 亚洲精品免费观看视频 | 国产不卡一 | 国产色a在线观看 | 亚洲成人午夜av | 国产色婷婷在线 | 欧美黑人性爽 | 国产亚洲人 | 日韩网站中文字幕 | 精品中文字幕在线 | 性日韩欧美在线视频 | 天天爽夜夜操 | 精品一区二区6 | 青青草国产在线 | 人人爽人人爽人人爽学生一级 | 日本最新一区二区三区 | 黄色app网站在线观看 | 成人国产精品久久久春色 | 成人av一区二区在线观看 | 99成人在线视频 | 久久精品播放 | 黄色视屏av| 成年人黄色大片在线 | 337p西西人体大胆瓣开下部 | 男女视频91| 国产免费国产 | 日产乱码一二三区别免费 | 国产a免费 | 精品一区二区三区久久 | 久久九九影院 | 国产一级片毛片 | 99综合电影在线视频 | 狠狠色伊人亚洲综合成人 | 久久九九影视网 | 高清在线一区 | 九九精品视频在线观看 | 五月婷婷狠狠 | 激情综合网五月婷婷 | 日韩草比| 久久久国产精品电影 | 91视频 - 114av| 日韩av电影中文字幕在线观看 | 婷婷丁香色综合狠狠色 | 911av视频 | 久久国产一区二区 | 亚洲天天在线日亚洲洲精 | 99精彩视频| 精品国产视频一区 | 欧美一区免费在线观看 | 国产色在线观看 | 亚洲精品黄 | 欧美在线视频一区二区三区 | 亚洲日本va午夜在线电影 | 69国产成人综合久久精品欧美 | 中文字幕a∨在线乱码免费看 | 成人三级网站在线观看 | 99热手机在线观看 | 六月色| 久久久 精品 | 成人免费ⅴa | 亚洲国产色一区 | 亚洲黄色一级电影 | 国产又黄又爽又猛视频日本 | 久久久久久久久久亚洲精品 | 日韩在线观看视频一区二区三区 | 美女久久久久久久 | 亚洲精品一区二区三区高潮 | 黄色一集片 | 2019中文最近的2019中文在线 | 久久久三级视频 | 国产91免费观看 | 成人av免费在线播放 | 一区二区av | 国产品久精国精产拍 | 在线观看成人毛片 | 深爱激情五月综合 | 五月天色中色 | 在线观看日韩精品 | 成人性生交大片免费观看网站 | 国产精品久久久久国产精品日日 | 国产黄色播放 | 久久久免费网站 | 97国产在线观看 | 精品毛片一区二区免费看 | 人人爽人人爽 | 中文字幕免费观看全部电影 | 国产一级特黄电影 | 香蕉影院在线播放 | 国产91九色视频 | 免费看片成年人 | 久久国内视频 | 久草香蕉在线视频 | 444av| 99欧美| 亚洲精品国偷自产在线91正片 | 久久综合久久久 | 久久av伊人 | 亚洲狠狠干 | 在线视频区 | 91精品网站在线观看 | 在线免费观看国产视频 | 日韩电影一区二区三区 | 91桃色国产在线播放 | 午夜精品区 | 亚洲日本va在线观看 | 午夜视频在线网站 | 视频一区亚洲 | 深夜成人av | 日韩电影在线视频 | 久久久久久久久久影视 | 国内精品久久久久久久影视麻豆 | 欧美大香线蕉线伊人久久 | 久久国产免费视频 | 亚洲免费精品一区二区 | 五月天最新网址 | 婷婷综合导航 | 日本不卡视频 | 一区二区久久久久 | 丝袜网站在线观看 | 国产精品视频资源 | 欧美精选一区二区三区 | 色.www | 免费看成人av| 国产人成精品一区二区三 | 黄色app网站在线观看 | 成人av视屏 | 五月综合色婷婷 | www.五月激情.com | 久久这里只有精品1 | 玖玖爱在线观看 | 国内免费的中文字幕 | 91精品在线免费观看 | 中文字幕色综合网 | av日韩不卡 | 国产精品久久久久永久免费看 | 免费一级毛毛片 | 精品一区二区综合 | 丰满少妇一级 | 国产精品久久久久婷婷二区次 | 成人小视频在线 | 国产精品嫩草影院123 | 免费能看的av| 亚洲免费永久精品国产 | 人人超在线公开视频 | 韩日在线一区 | av免费看网站 | av青草| 粉嫩av一区二区三区四区五区 | 成人四虎影院 | 日韩精品一区二区三区中文字幕 | 久久精品三 | 一区二区三区四区五区在线 | 久久麻豆精品 | 日韩18p| 国模精品一区二区三区 | 久久久久久福利 | 久久久久久久久久国产精品 | 国产黄色高清 | 水蜜桃亚洲一二三四在线 | 玖玖爱在线观看 | 探花视频免费观看高清视频 | 少妇bbw揉bbb欧美 | 亚洲视屏 | 国产高清日韩 | 久久av在线播放 | 中文字幕资源网 国产 | 欧洲精品视频一区二区 | 91成人免费看 | 成人小视频在线免费观看 | 西西444www大胆无视频 | 久草视频视频在线播放 | zzijzzij日本成熟少妇 | 成人性生交大片免费观看网站 | 免费看一级片 | 国产亚洲一区二区三区 | a在线观看视频 | 在线观看视频国产一区 | 国产亚洲永久域名 | 色综合久久天天 | 国产xvideos免费视频播放 | 91色一区二区三区 | 国产.精品.日韩.另类.中文.在线.播放 | 亚洲欧美日韩国产一区二区 | 国产日韩欧美在线播放 | 久草免费在线 | 探花视频在线观看免费版 | 欧美狠狠操| 黄色软件视频大全免费下载 | 国产精品 欧美 日韩 | 精品国产一区二区三区四区在线观看 | 亚洲人毛片 | 91专区在线观看 | 99在线观看视频网站 | 欧美日韩国产一区二区三区 | 一级黄色av | 国产黄色片久久 | 激情久久小说 | 国产精品乱码一区二区视频 | 免费h精品视频在线播放 | 久久女同性恋中文字幕 | 国产精品破处视频 | 狠狠狠色丁香婷婷综合久久88 | 免费a级毛片在线看 | 免费网站观看www在线观看 | 干综合网 | 天天av天天| 制服丝袜一区二区 | 日韩资源视频 | 丁香婷婷社区 | 夜添久久精品亚洲国产精品 | 少妇按摩av| 嫩草av影院 | 国产一区二区高清不卡 | 欧美日韩在线精品一区二区 | 欧美极品一区二区三区 | 超碰在97| 久久歪歪 | 超碰在线观看99 | 日本色小说视频 | 亚洲精品影院在线观看 | 日日干日日操 | 欧美精品免费在线观看 | 亚洲最大成人免费网站 | 91专区在线观看 | 亚洲不卡av一区二区三区 | 91精品对白一区国产伦 | 国产亲近乱来精品 | 欧美在线观看视频免费 | 婷婷国产在线 | 热久久免费视频 | 天天干 天天摸 天天操 | 国产精品久久网 | 国产欧美高清 | 午夜电影 电影 | 在线观看 国产 | 欧美激情精品久久久久久 | 日韩精品无码一区二区三区 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 人人澡人人舔 | 日韩字幕| 亚洲午夜激情网 | 色七七亚洲影院 | 日本黄色免费播放 | 婷婷综合亚洲 | 国产成人在线网站 | 男女激情免费网站 | 精品国产1区2区3区 国产欧美精品在线观看 | 日韩视频在线观看视频 | 国产精品福利在线播放 | 婷婷深爱 | 亚洲乱码国产乱码精品天美传媒 | 不卡av免费在线观看 | 国产日本三级 | 欧美日bb | 色婷婷久久 | 久久久网| 国产精品97| 国产在线自 | 99视频导航| 国产精品av一区二区 | 国产亚洲日 | 婷婷婷国产在线视频 | 在线国产中文字幕 | 99久久日韩精品视频免费在线观看 | 色噜噜噜噜 | 国产精品视频999 | 国内外成人在线 | 成人a在线观看高清电影 | 欧美 日韩 成人 | 伊人五月 | 久久久婷 | 激情综合五月婷婷 | 热99久久精品 | 国产福利中文字幕 | 日韩精品免费在线视频 | 日本久久久久久久久久久 | 日韩电影在线观看中文字幕 | 国产高清亚洲 | 亚洲特级片 | 一区二区三区四区精品 | av电影在线播放 | 国产99久久久国产精品成人免费 | 天天做天天爱夜夜爽 | a v在线观看 | 成人在线观看日韩 | 日本精品久久久久 | 久久手机免费观看 | 欧美成人一二区 | 欧美视频在线观看免费网址 | 亚洲午夜精品久久久久久久久 | 在线观看视频在线观看 | 99热国产精品 | 91久久国产精品 | 人人爽人人爱 | 亚洲国产一区二区精品专区 | 黄色av三级在线 | 欧美一级xxxx | 欧美成人视 | 成人a毛片 | 69视频在线| 国内精品视频免费 | 国产片网站| 亚洲久久视频 | 亚洲日本黄色 | 美女中文字幕 | 麻豆成人在线观看 | 欧美夫妻生活视频 | 在线天堂中文www视软件 | 国产又粗又猛又色又黄网站 | 亚洲免费在线观看视频 | 精品国产免费久久 | 大胆欧美gogo免费视频一二区 | 久久99国产综合精品免费 | 99久久精品免费看国产四区 | 天天操天天干天天爽 | 色综合天天综合 | 国产精品毛片一区视频播不卡 | 国产成人福利 | 亚洲一区二区91 | 特级黄色视频毛片 | 精品国产视频在线 | 精品国产91亚洲一区二区三区www | 狠狠干综合 | 成人亚洲精品久久久久 | 中文字幕视频网站 | 亚洲最大激情中文字幕 | 久久综合狠狠狠色97 | 一区二区中文字幕在线观看 | 久久免费精品国产 | 国产午夜精品免费一区二区三区视频 | 国产精品自在线 | 国产精品理论片在线观看 | 中文字幕一区二 | www.五月婷婷.com | 欧美一区二区三区在线 | 日韩国产欧美在线播放 | 日日夜夜免费精品视频 | 成人免费视频播放 | 在线国产小视频 | 久久综合五月天婷婷伊人 | 一区二区三区电影在线播 | 99精品国产免费久久久久久下载 | 高清av不卡| 午夜精品一区二区三区四区 | 天天操天天摸天天射 | 天天色天天操综合 | 欧美va日韩va| 亚洲精品日韩一区二区电影 | 91免费在线 | 国产亚洲亚洲 | 九九热只有精品 | 国产成人99av超碰超爽 | 一区二区三区在线视频观看58 | 国产精品a成v人在线播放 | 欧美日韩在线电影 | 亚a在线 | www久久com| 91在线操| 日韩免费一级a毛片在线播放一级 | 天天天干 | 亚洲欧美日本国产 | 高清av影院 | 久久国产精品99久久久久 | 国产裸体bbb视频 | 丁香婷婷激情国产高清秒播 | 日日躁你夜夜躁你av蜜 | 亚洲一二视频 | 久久精品国产v日韩v亚洲 | 国产成人久久av977小说 | 91资源在线 | 综合激情网 | 美女福利视频一区二区 | 亚洲高清资源 | 欧美在线视频第一页 | 绯色av一区 | 欧美日在线观看 | 亚洲精品国偷自产在线99热 | 超碰人人在线 | 日韩av网站在线播放 | av一本久道久久波多野结衣 | 国产一区二区不卡视频 | 亚洲国产精品小视频 | 亚洲做受高潮欧美裸体 | 欧美日韩在线免费视频 | 久久这里只有精品久久 | 亚洲免费不卡 | 亚色视频在线观看 | 国产日韩精品在线观看 | 中文字幕在线视频一区 | 一本一道波多野毛片中文在线 | 在线观看亚洲精品 | 人人澡av | 免费观看成年人视频 | 亚洲精品美女久久 | 91亚·色| 午夜av免费观看 | 国产精品一区二区在线播放 | 免费看片网址 | 国产成人一区二区三区影院在线 | 日韩xxx视频 | 人人爽人人爱 | 国产在线超碰 | 国产精品综合av一区二区国产馆 | 草久在线观看视频 | 成全在线视频免费观看 | 狠狠网| 51久久成人国产精品麻豆 | 久久a热6 | 三级黄在线| 男女视频久久久 | 成人av免费网站 | 国产精品毛片久久久久久久久久99999999 | 97狠狠操| 黄av资源| 免费网站观看www在线观看 | 六月丁香综合网 | 中文字幕亚洲精品日韩 | 久久久国产99久久国产一 | 天天操网址 | 中文字幕美女免费在线 | 99精品国自产在线 | 欧美在线free | 国产精品中文字幕在线播放 | 久久精品视频在线 | 欧美性极品xxxx做受 | 国产18精品乱码免费看 | 免费看片成年人 | 亚洲精品高清在线观看 | 精品在线小视频 | 日批网站免费观看 | 精品久久一级片 | 岛国片在线| 精品国产伦一区二区三区免费 | 成人免费视频网站在线观看 | 欧美日韩中文字幕综合视频 | 成人黄色小说在线观看 | 五月婷婷激情综合 | 亚洲国产色一区 | 日韩欧美视频 | 国产精品欧美激情在线观看 | 综合网天天色 | 天天综合色天天综合 | 超碰av免费| 天天做日日做天天爽视频免费 | 国产精品综合av一区二区国产馆 | 91激情视频在线播放 | 欧美人牲 | 日韩欧美视频一区二区三区 | 成人久久精品 | 91九色最新地址 | 高清av中文在线字幕观看1 | adn—256中文在线观看 | 久草视频看看 | 成人午夜精品 | 最近日本中文字幕 | 99re视频在线观看 | 超碰在线天天 | 国产伦精品一区二区三区照片91 | 国产精品人人做人人爽人人添 | 成人综合日日夜夜 | 国产精品福利午夜在线观看 | 国产日韩精品在线 | 国产精品专区在线 | 亚洲精品456在线播放乱码 | 久久久亚洲麻豆日韩精品一区三区 | 国产黄影院色大全免费 | 三级在线视频播放 | 激情在线网站 | 中文字幕一区二区在线观看 | adn—256中文在线观看 | 久久精品三级 | 国产一级免费在线 | 久久国产精品99国产精 | а天堂中文最新一区二区三区 | 欧美人牲| 精品日韩中文字幕 | 欧美一二区视频 | 美腿丝袜一区二区三区 | 久久伦理电影 | 久久久久免费网站 | 九色精品免费永久在线 | 国产精品成人国产乱一区 | 婷婷六月中文字幕 | 久久一区二 | 国产一二区视频 | 久久综合电影 | 久99久在线 | www.黄色在线 | 亚洲一区二区三区毛片 | 97中文字幕| 亚洲成年人免费网站 | www久久99| 91九色在线播放 | 久久久久女人精品毛片九一 | 成人在线免费看视频 | 亚洲成人黄色在线观看 | 日韩av电影国产 | 91av99| 久久精品一二三区白丝高潮 | 亚洲一区二区精品3399 | 国产日韩精品一区二区三区在线 | 久草在线视频网站 | 激情丁香月 | 狠狠狠狠狠色综合 | 日韩欧美一区二区三区在线观看 | 黄色片网站大全 | 国产精品一二 | 精品在线视频观看 | 日韩在线小视频 | 伊人首页| 久久综合爱 | 黄色网址国产 | 五月天婷婷丁香花 | 波多野结衣在线中文字幕 | 久久久国产一区 | 九九电影在线 | 国内精品免费久久影院 | 亚洲国产精品成人va在线观看 | 911国产在线观看 | 国产亚洲成人网 | 国产中文字幕av | 日本电影黄色 | 久久久国产影院 | 久久久.com| 国产不卡一| 黄毛片在线观看 | 偷拍区另类综合在线 | 国产美女精品视频免费观看 | 国产美女在线观看 | 国产自产在线视频 | 日躁夜躁狠狠躁2001 | 亚洲伊人第一页 | 成人网页在线免费观看 | 精品在线一区二区 | 成片免费观看视频 | 五月婷婷一区 | 欧美日性视频 | 国产理伦在线 | 亚洲 成人 一区 | 日本中文字幕视频 | 午夜999 | 国产又粗又猛又色又黄网站 | 欧美,日韩 | 天堂av在线中文在线 | av成人在线电影 | 热久久影视 | 欧美久久久久久久久中文字幕 | 亚洲成av人片在线观看香蕉 | 成年人电影免费看 | 999视频在线观看 | 国产一区二区三区 在线 | 国产亚洲精品久久久网站好莱 | av免费网| 国产91在线免费视频 | 激情导航 | 日韩在线免费播放 | 国产午夜精品av一区二区 | 97超碰资源总站 | av.com在线 | 香蕉视频在线网站 | 色偷偷人人澡久久超碰69 | 精品视频久久久久久 | 国产精品乱码一区二三区 | 久久国产午夜精品理论片最新版本 | 五月婷婷视频 | 久久久久久中文字幕 | 伊色综合久久之综合久久 | 精品视频在线看 | 国产亚洲欧美一区 | 欧美一级片在线 | 在线看一级片 | 黄色网www | 久草在线观看 | 久久不色 | 中文字幕欧美日韩va免费视频 | 一区三区视频在线观看 | 91久久电影 | 97免费在线观看 | 久av在线| 日本在线观看一区二区 | 亚洲视频每日更新 | 国产香蕉久久 | 在线高清| 中文字幕在线观看免费观看 | 97人人射| 亚洲精品网址在线观看 | 久久精品一区二区三区四区 | 久久久久久国产精品亚洲78 | 精品xxx| 中文字幕中文 | 欧美aaa大片 | 综合久久久久 | 精品999国产| 国产精品九九九 | 91爱爱免费观看 | 国产精品久久久久9999 | 一区二区三区在线免费观看 | 一区二区影视 | 丝袜av一区 | 欧洲色吧| 麻豆免费在线视频 | 福利一区二区在线 | 亚洲三级在线免费观看 | 婷婷中文在线 | 久久成人资源 | www.亚洲精品在线 | 色婷婷视频网 | 亚州激情视频 | 天海冀一区二区三区 | 婷婷色中文 | 波多野结衣一区三区 | 日本公妇在线观看 | 最近更新好看的中文字幕 | 视频一区久久 | 国产欧美精品一区二区三区 | 久久精品网| 成人国产网址 | 国产成人一区三区 | 精品一区精品二区高清 | 99国产成+人+综合+亚洲 欧美 | 探花视频网站 | 亚洲精品美女在线观看 | 激情欧美xxxx | 欧美精品在线观看一区 | 久久精品在线免费观看 | 公与妇乱理三级xxx 在线观看视频在线观看 | 在线精品视频在线观看高清 | 久久精品黄色 | 99久久婷婷国产精品综合 | 色婷婷综合久久久久中文字幕1 | 天天射综合网视频 | 亚洲h视频在线 | 色综合婷婷 | 狠狠狠干 | av大片免费在线观看 | 色综合天天狠狠 | 久久精品99国产精品 | 国产99久久久国产精品免费看 | 在线免费黄色av | 91精品区 | 波多野结衣一区二区 | 亚洲在线视频播放 | 亚洲最新在线 | 日韩理论影院 | 亚洲免费国产 | 三级免费黄 | 亚洲精品一区中文字幕乱码 | 曰韩精品 | 日韩欧美网址 | 国产人成在线观看 | 四虎影视成人永久免费观看视频 | 久久国产欧美日韩精品 | 久久久久久久久久久久久9999 | 5月丁香婷婷综合 | 久久九精品| 亚洲涩涩一区 | 2024国产在线| 99色在线视频 | 国产成人精品三级 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产一线天在线观看 | 中文字幕在线国产 | 精品国精品自拍自在线 | 97超碰人人澡人人爱学生 | 日韩在线欧美在线 | 超碰成人网 | 日韩在线网 | 欧美精品国产精品 | 性日韩欧美在线视频 | 超级碰碰碰视频 | 超碰97在线看 | 成人毛片久久 | 日批视频 | 国产大陆亚洲精品国产 | 日韩区在线观看 | 久久大片 | 天堂av免费在线 | 91视频观看免费 | 伊人精品影院 | 精品福利在线视频 | 欧美视频18 |