Thanks a lot Deepak, It worked!!.

Thank you once again for your time.

Regards
Prasanna

On Mon, Apr 12, 2010 at 11:22 PM, Deepak Shetty <[email protected]> wrote:

> 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
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to