Hi I removed exslt and switched to XSLT 2.0 . I also had to use saxon (my tool of choice for any XSLT related stuff - http://saxon.sourceforge.net/#F9.2HE)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> then Under template pagelist I added a column <th>Percentile</th> (after maxtime) Then added the variable (with changes) <xsl:variable name="thisPercentile"> <xsl:call-template name="percentiles"> <xsl:with-param name="responsetimes" select="/testResults/*...@lb = current()/@lb]/@t"/> <xsl:with-param name="percentile" select="0.9" /> </xsl:call-template> </xsl:variable> Then actually display the variable (after maxtime) <td> <xsl:value-of select="$thisPercentile" /> </td> And finally the template itself (Note i havent checked the logic , seems to have a bug for when there is only one element of that label -in which case percentile is useless but you might add a check to print out some value) <xsl:template name="percentiles"> <xsl:param name="responsetimes" /> <xsl:param name="percentile" /> <xsl:variable name="sortedresponsetimes"> <xsl:for-each select="$responsetimes"> <xsl:sort data-type="number"/> <xsl:element name="time"> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> </xsl:variable> <xsl:variable name="n" select="count($responsetimes)-1" /> <xsl:variable name="k" select="floor($percentile*$n)+1" /> <xsl:variable name="f" select="($percentile*$n+1)-$k" /> <xsl:variable name="a0" select="$sortedresponsetimes[1]/time[$k]" /> <xsl:variable name="a1" select="$sortedresponsetimes[1]/time[$k+1]" /> <xsl:value-of select="$a0+ ( $f *( $a1 - $a0))" /> </xsl:template> Run from command line as (or use java task in ant) java -jar saxon9he.jar -o out.html report.jtl report.xsl regards deepak On Sun, Apr 11, 2010 at 11:14 PM, prasanna bhat <[email protected]>wrote: > Hi Deepak, > > I have shared the files using google docs. > > Thanks for your time. > > Regards, > Prasanna > > > On Mon, Apr 12, 2010 at 12:12 AM, Deepak Shetty <[email protected]> wrote: > > > Hi > > post your XSLT somewhere and provide a link to it, > > > > I dont think the sample would work with 1.0 , I usually use Saxon instead > > of > > xalan. > > > > regards > > deepak > > > > On Sun, Apr 11, 2010 at 6:27 AM, prasanna bhat <[email protected] > > >wrote: > > > > > Thank you Deepak for your response. > > > > > > I went through the link pointed by you. > > > ( > > > > > > > > > http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-user/200409.mbox/%[email protected]%3e > > > ) > > > and added the following code fragments into * > > > jmeter-results-detail-report_21.xsl* > > > > > > <xsl:variable name="thisPercentile"> > > > <xsl:call-template name="percentiles"> > > > <xsl:with-param name="responsetimes" select="../sampleresu...@label > = > > > current()/@label]/@time"/> > > > <xsl:with-param name="percentile" select="0.9" /> > > > </xsl:call-template> > > > </xsl:variable> > > > > > > <xsl:template name="percentiles"> > > > <xsl:param name="responsetimes" select="/.." /> > > > <xsl:param name="percentile" select="." /> > > > <xsl:variable name="sortedresponsetimes"> > > > <xsl:for-each select="$responsetimes"> > > > <xsl:sort data-type="number"/> > > > <xsl:element name="time"> > > > <xsl:value-of select="."/> > > > </xsl:element> > > > </xsl:for-each> > > > </xsl:variable> > > > <xsl:variable name="n" select="count($responsetimes)-1" /> > > > <xsl:variable name="k" select="floor($percentile*$n)+1" /> > > > <xsl:variable name="f" select="($percentile*$n+1)-$k" /> > > > <xsl:variable name="a0" select="$sortedresponsetimes[1]/time[$k]" > > > /> (Line No: 478:71 as displayed > in > > > the > > > error matches to $k) > > > <xsl:variable name="a1" select="$sortedresponsetimes[1]/time[$k+1]" /> > > > <xsl:value-of select="$a0+ ( $f *( $a1 - $a0))" /> > > > </xsl:template> > > > > > > With this in place, i got an error generating the reports. > > > > > > [xslt] > > > > > > C:\jakarta-jmeter-2.3.4\extras\jmeter-results-detail-report_21.xsl:428:71: > > > Fatal Error! org.apache.xpath.objects.XRTreeFrag cannot be cast > > > to org.apache.xpath.objects.XNodeSet Cause: > > java.lang.ClassCastException: > > > org.apache.xpath.objects.XRTreeFrag cannot be cast to > > org.apache.xpath.obje > > > cts.XNodeSet > > > > > > I'm not a pro in XSLT. I tried my level best to debug this issue going > > > through various links listed from google search. I added the following > > > fragment to the XSL file. > > > > > > > > > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > > xmlns:exsl="http://exslt.org/common" > > > extension-element-prefixes="exsl" > > > version="1.0"> > > > > > > <xsl:variable name="a0" select=" > > > exsl:node-set($sortedresponsetimes[1])/time[$k]" /> > > > > > > and from the build.xml i got to know that i'm using xalan_2_7_1.jar. > > > > > > the issue is still not fixed. > > > > > > Can you please provide me some inputs on this? > > > > > > Your time is very much appreciated. > > > > > > Thanks, > > > Prasanna > > > > > > On Fri, Apr 9, 2010 at 10:07 PM, Deepak Shetty <[email protected]> > > wrote: > > > > > > > You'll have to modify the XSLT. I believe this has been discussed > > before > > > on > > > > the archives. A search reveals > > > > > > > > > > http://www.mail-archive.com/[email protected]/msg05400.html > > > > > > > > regards > > > > deepak > > > > > > > > On Fri, Apr 9, 2010 at 8:55 AM, prasanna bhat < > > [email protected] > > > > >wrote: > > > > > > > > > Hi, > > > > > > > > > > I'm using ant to run Jmeter scripts using the build script as > > suggested > > > > in > > > > > http://www.programmerplanet.org/pages/projects/jmeter-ant-task.php > . > > > I'm > > > > > using Aggregate report listener to log the results in a file. In > the > > > > > generated reports the following columns are present. > > > > > > > > > > URL > > > > > > > > > > TestsFailuresSuccess RateAverage TimeMin TimeMax TimeI want to add > > 90% > > > > line > > > > > column also in the report. Can some one please provide some inputs > or > > > > > pointers as to how i can accomplish this. > > > > > > > > > > Thanks, > > > > > Prasanna > > > > > > > > > > > > > > >

