Re: JDBC test script error" The result of 'TestRunner()' is not callable"

Gang Yan <[email protected]> Thu, 15 Oct 2015 02:02:06 -0700 (PDT)
Newsgroups gmane.comp.java.grinder.user
Message-ID <4b648002-5c4a-4a18-8089-4cb2f2c93d75@default>
--===============1762218786475368345==
Content-Type: multipart/alternative;
	boundary="__1444899729784211502abhmp0002.oracle.com"

--__1444899729784211502abhmp0002.oracle.com
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Thank you reply

=C2=A0

I modify test script .add jdbc insert sql and increase DB sessions(1000). 5=
00 threads test result:=C2=A0 TPS 6.61.

=C2=A0

=C2=A0

=C2=A0

Tests=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Errors=C2=A0=C2=A0=C2=A0=C2=A0 =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0Mean Test=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0Te=
st Time=C2=A0=C2=A0=C2=A0=C2=A0 TPS=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=20

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Time (=
ms)=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0Standard=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Deviat=
ion=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=20

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0(ms)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20

=C2=A0

Test 1=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 1000=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 23.87=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A030.77=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A03.31=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 "JDBC Test Result_Multi-Threads"

Test 2=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 1000=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 17.95=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A027.38=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A03.31=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 "JDBC Test Result_Multi-Threads"

=C2=A0

Totals=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 2000=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 20.91=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=
=A0=C2=A0=C2=A029.27=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=
=C2=A0=C2=A06.61=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=20

=C2=A0

Have any suggest=C2=A0 for improve TPS value ?

=C2=A0

Thanks!

=C2=A0

=C2=A0

Test script:

=C2=A0

# The sorting tes=C2=A0 supports a configurable array length.

# It runs the JavaTest.sort method of the JavaTest class.

=C2=A0

from net.grinder.script.Grinder import grinder

from net.grinder.script import Test

from datetime import datetime

from datetime import timedelta

from java.sql import DriverManager

from oracle.jdbc import OracleDriver

=C2=A0

########################################

#

# main body of test script starts here

#

########################################

=C2=A0

# Get the propeties to access test configuration information

properties =3D grinder.getProperties()

=C2=A0

# The description is a property (instead of a hardcoded string in this scri=
pt)

test =3D Test(1, properties.get("javatest.description"))

test =3D Test(2, properties.get("javatest.description"))

=C2=A0

# select the method for which to collect information

# test.record(WriteMulitpleLittleFile.write)

=C2=A0

# initialize data for compressing

# fileName =3D properties.get("javatest.fileToCompress")

# grinder.logger.info("data file to compress is " + fileName)

# JavaTest.initializeCompression(fileName)

=C2=A0

# If the run mode is runOnce, the TestRunner class will

# run once.=C2=A0 Otherwise, if the run mode is continuous,

# the TestRunner class will run the test for at least

# the specified duration (but possibly longer)

runMode =3D properties.get("javatest.runMode")

#WriteMulitpleLittleFile.setParameters(dir, fileSize...)

if runMode =3D=3D "continuous":

=C2=A0 # figure out how long to run the test

=C2=A0 m =3D int(properties.getProperty("javatest.durationMinutes", "0"))

=C2=A0 h =3D int(properties.getProperty("javatest.durationHours", "0"))

=C2=A0 d =3D int(properties.getProperty("javatest.durationDays", "0"))

=C2=A0 duration =3D timedelta(minutes=3Dm,hours=3Dh,days=3Dd)

=C2=A0 grinder.logger.info("run mode is continuous, duration is " + str(dur=
ation))

elif runMode =3D=3D "runOnce":

=C2=A0 grinder.logger.info("run mode is run once")

=C2=A0 duration =3D timedelta(minutes=3D0)

else:

=C2=A0 grinder.logger.info("run mode not set or not recongized, default to =
run once")

=C2=A0 duration =3D timedelta(minutes=3D0)

=C2=A0

########################################

#

# The TestRunner class is used by The Grinder to perform the test

#

########################################

=C2=A0

test1 =3D Test(1, "Database insert")

test2 =3D Test(2, "Database query")

=C2=A0

# Load the Oracle JDBC driver.

DriverManager.registerDriver(OracleDriver())

=C2=A0

def getConnection():

=C2=A0=C2=A0=C2=A0 return DriverManager.getConnection(

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "jdbc:oracle:thin:@unpgv4010.us.=
oracle.com:1521:orcl", "PBPUBLIC", "PBPUBLIC")

=C2=A0

def ensureClosed(object):

=C2=A0=C2=A0=C2=A0 try: object.close()

=C2=A0=C2=A0=C2=A0 except: pass

=C2=A0

# One time initialisation that cleans out old data.

connection =3D getConnection()

statement =3D connection.createStatement()

=C2=A0

try: statement.execute("drop table grinder_test")

except: pass

=C2=A0

statement.execute("create table grinder_test(thread number, run number)")

=C2=A0

ensureClosed(statement)

ensureClosed(connection)

=C2=A0

class TestRunner:

=C2=A0=C2=A0 def __call__(self):

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 endTime =3D datetime.now()=
 + duration

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 notDone =3D True

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 while notDone:

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 notDone =3D da=
tetime.now() < endTime

=C2=A0

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 connection =3D None

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertStatement =3D None

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 queryStatement =3D None

=C2=A0

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 try:

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 connecti=
on =3D getConnection()

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 querySta=
tement =3D connection.createStatement()

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertSt=
atement =3D connection.createStatement()

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 test1.re=
cord(insertStatement)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 insertSt=
atement.execute("insert into grinder_test values(%d, %d)" %

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0(grinder.threadNumbe=
r, grinder.runNumber))

=C2=A0

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 test2.re=
cord(queryStatement)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 querySta=
tement.execute("select count(*) from grinder_test")

=C2=A0

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 finally:

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureCl=
osed(insertStatement)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureCl=
osed(queryStatement)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ensureCl=
osed(connection)

=C2=A0

--__1444899729784211502abhmp0002.oracle.com
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dutf-8"><meta name=3DGenerator content=3D"Microsoft=
 Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
=09{font-family:=E5=AE=8B=E4=BD=93;
=09panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
=09{font-family:"Cambria Math";
=09panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
=09{font-family:"\@=E5=AE=8B=E4=BD=93";
=09panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:12.0pt;
=09font-family:=E5=AE=8B=E4=BD=93;}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
=09{mso-style-priority:99;
=09mso-style-link:"Plain Text Char";
=09margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:10.5pt;
=09font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
=09{mso-style-priority:99;
=09mso-style-link:"Balloon Text Char";
=09margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:8.0pt;
=09font-family:=E5=AE=8B=E4=BD=93;}
span.PlainTextChar
=09{mso-style-name:"Plain Text Char";
=09mso-style-priority:99;
=09mso-style-link:"Plain Text";
=09font-family:"Calibri","sans-serif";}
span.BalloonTextChar
=09{mso-style-name:"Balloon Text Char";
=09mso-style-priority:99;
=09mso-style-link:"Balloon Text";
=09font-family:=E5=AE=8B=E4=BD=93;}
span.EmailStyle21
=09{mso-style-type:personal;
=09font-family:"Calibri","sans-serif";
=09color:#1F497D;}
span.EmailStyle22
=09{mso-style-type:personal-reply;
=09font-family:"Calibri","sans-serif";
=09color:#1F497D;}
.MsoChpDefault
=09{mso-style-type:export-only;
=09font-size:10.0pt;}
@page WordSection1
=09{size:612.0pt 792.0pt;
=09margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
=09{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DZH-CN link=3Dblue vli=
nk=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span lang=3DEN-=
US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1F49=
7D'>Thank you reply<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3D=
EN-US style=3D'font-size:10.5pt;font-family:"Calibri","sans-serif";color:#1=
F497D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-=
US>I modify test script .add jdbc insert sql and increase DB sessions(1000)=
. 500 threads test result:&nbsp; TPS 6.61.<o:p></o:p></span></p><p class=3D=
MsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoP=
lainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlain=
Text><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText=
><span lang=3DEN-US>Tests&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Errors&nbsp;&nbs=
p;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mean Test&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp; &nbsp;Test Time&nbsp;&nbsp;&nbsp;&nbsp; TPS&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p><p class=3DMsoPlainT=
ext><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;Time (ms)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Standa=
rd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></span></p><p class=3DMsoPlainText=
><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;Deviation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p><p class=
=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ms)&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p><p class=3DMsoPlainText><=
span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span=
 lang=3DEN-US>Test 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp; 23.87&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30.77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;3.31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; &quot;JDBC Test Result_Multi-Threads&quot;<o:p></o:p></span></p=
><p class=3DMsoPlainText><span lang=3DEN-US>Test 2&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; 1000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17.95&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27.38&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.31&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;JDBC Test Result_Multi-Thre=
ads&quot;<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><=
o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>Total=
s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; 20.91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=
&nbsp;29.27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nb=
sp;6.61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span><=
/p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><=
p class=3DMsoPlainText><span lang=3DEN-US>Have any suggest&nbsp; for improv=
e TPS value ?<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-=
US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>T=
hanks!<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p=
>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nb=
sp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>Test script:=
<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp=
;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US># The sorting =
tes&nbsp; supports a configurable array length.<o:p></o:p></span></p><p cla=
ss=3DMsoPlainText><span lang=3DEN-US># It runs the JavaTest.sort method of =
the JavaTest class.<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=
=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DE=
N-US>from net.grinder.script.Grinder import grinder<o:p></o:p></span></p><p=
 class=3DMsoPlainText><span lang=3DEN-US>from net.grinder.script import Tes=
t<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>from date=
time import datetime<o:p></o:p></span></p><p class=3DMsoPlainText><span lan=
g=3DEN-US>from datetime import timedelta<o:p></o:p></span></p><p class=3DMs=
oPlainText><span lang=3DEN-US>from java.sql import DriverManager<o:p></o:p>=
</span></p><p class=3DMsoPlainText><span lang=3DEN-US>from oracle.jdbc impo=
rt OracleDriver<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DE=
N-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US=
>########################################<o:p></o:p></span></p><p class=3DM=
soPlainText><span lang=3DEN-US>#<o:p></o:p></span></p><p class=3DMsoPlainTe=
xt><span lang=3DEN-US># main body of test script starts here<o:p></o:p></sp=
an></p><p class=3DMsoPlainText><span lang=3DEN-US>#<o:p></o:p></span></p><p=
 class=3DMsoPlainText><span lang=3DEN-US>##################################=
######<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p=
>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US># Get th=
e propeties to access test configuration information<o:p></o:p></span></p><=
p class=3DMsoPlainText><span lang=3DEN-US>properties =3D grinder.getPropert=
ies()<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>=
&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US># The des=
cription is a property (instead of a hardcoded string in this script)<o:p><=
/o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>test =3D Test(1,=
 properties.get(&quot;javatest.description&quot;))<o:p></o:p></span></p><p =
class=3DMsoPlainText><span lang=3DEN-US>test =3D Test(2, properties.get(&qu=
ot;javatest.description&quot;))<o:p></o:p></span></p><p class=3DMsoPlainTex=
t><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><s=
pan lang=3DEN-US># select the method for which to collect information<o:p><=
/o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US># test.record(Wr=
iteMulitpleLittleFile.write)<o:p></o:p></span></p><p class=3DMsoPlainText><=
span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span=
 lang=3DEN-US># initialize data for compressing<o:p></o:p></span></p><p cla=
ss=3DMsoPlainText><span lang=3DEN-US># fileName =3D properties.get(&quot;ja=
vatest.fileToCompress&quot;)<o:p></o:p></span></p><p class=3DMsoPlainText><=
span lang=3DEN-US># grinder.logger.info(&quot;data file to compress is &quo=
t; + fileName)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN=
-US># JavaTest.initializeCompression(fileName)<o:p></o:p></span></p><p clas=
s=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3D=
MsoPlainText><span lang=3DEN-US># If the run mode is runOnce, the TestRunne=
r class will<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-U=
S># run once.&nbsp; Otherwise, if the run mode is continuous,<o:p></o:p></s=
pan></p><p class=3DMsoPlainText><span lang=3DEN-US># the TestRunner class w=
ill run the test for at least<o:p></o:p></span></p><p class=3DMsoPlainText>=
<span lang=3DEN-US># the specified duration (but possibly longer)<o:p></o:p=
></span></p><p class=3DMsoPlainText><span lang=3DEN-US>runMode =3D properti=
es.get(&quot;javatest.runMode&quot;)<o:p></o:p></span></p><p class=3DMsoPla=
inText><span lang=3DEN-US>#WriteMulitpleLittleFile.setParameters(dir, fileS=
ize...)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>if =
runMode =3D=3D &quot;continuous&quot;:<o:p></o:p></span></p><p class=3DMsoP=
lainText><span lang=3DEN-US>&nbsp; # figure out how long to run the test<o:=
p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp; m =3D =
int(properties.getProperty(&quot;javatest.durationMinutes&quot;, &quot;0&qu=
ot;))<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp=
; h =3D int(properties.getProperty(&quot;javatest.durationHours&quot;, &quo=
t;0&quot;))<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US=
>&nbsp; d =3D int(properties.getProperty(&quot;javatest.durationDays&quot;,=
 &quot;0&quot;))<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3D=
EN-US>&nbsp; duration =3D timedelta(minutes=3Dm,hours=3Dh,days=3Dd)<o:p></o=
:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp; grinder.log=
ger.info(&quot;run mode is continuous, duration is &quot; + str(duration))<=
o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>elif runMod=
e =3D=3D &quot;runOnce&quot;:<o:p></o:p></span></p><p class=3DMsoPlainText>=
<span lang=3DEN-US>&nbsp; grinder.logger.info(&quot;run mode is run once&qu=
ot;)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;=
 duration =3D timedelta(minutes=3D0)<o:p></o:p></span></p><p class=3DMsoPla=
inText><span lang=3DEN-US>else:<o:p></o:p></span></p><p class=3DMsoPlainTex=
t><span lang=3DEN-US>&nbsp; grinder.logger.info(&quot;run mode not set or n=
ot recongized, default to run once&quot;)<o:p></o:p></span></p><p class=3DM=
soPlainText><span lang=3DEN-US>&nbsp; duration =3D timedelta(minutes=3D0)<o=
:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;<=
/o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>################=
########################<o:p></o:p></span></p><p class=3DMsoPlainText><span=
 lang=3DEN-US>#<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DE=
N-US># The TestRunner class is used by The Grinder to perform the test<o:p>=
</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>#<o:p></o:p></s=
pan></p><p class=3DMsoPlainText><span lang=3DEN-US>########################=
################<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3D=
EN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-U=
S>test1 =3D Test(1, &quot;Database insert&quot;)<o:p></o:p></span></p><p cl=
ass=3DMsoPlainText><span lang=3DEN-US>test2 =3D Test(2, &quot;Database quer=
y&quot;)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o=
:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US># Load=
 the Oracle JDBC driver.<o:p></o:p></span></p><p class=3DMsoPlainText><span=
 lang=3DEN-US>DriverManager.registerDriver(OracleDriver())<o:p></o:p></span=
></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p=
><p class=3DMsoPlainText><span lang=3DEN-US>def getConnection():<o:p></o:p>=
</span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp; re=
turn DriverManager.getConnection(<o:p></o:p></span></p><p class=3DMsoPlainT=
ext><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;jdb=
c:oracle:thin:@unpgv4010.us.oracle.com:1521:orcl&quot;, &quot;PBPUBLIC&quot=
;, &quot;PBPUBLIC&quot;)<o:p></o:p></span></p><p class=3DMsoPlainText><span=
 lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lan=
g=3DEN-US>def ensureClosed(object):<o:p></o:p></span></p><p class=3DMsoPlai=
nText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp; try: object.close()<o:p></o:p><=
/span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp; exc=
ept: pass<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><=
o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US># One=
 time initialisation that cleans out old data.<o:p></o:p></span></p><p clas=
s=3DMsoPlainText><span lang=3DEN-US>connection =3D getConnection()<o:p></o:=
p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>statement =3D conne=
ction.createStatement()<o:p></o:p></span></p><p class=3DMsoPlainText><span =
lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=
=3DEN-US>try: statement.execute(&quot;drop table grinder_test&quot;)<o:p></=
o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>except: pass<o:p>=
</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:=
p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>statement.execute(&=
quot;create table grinder_test(thread number, run number)&quot;)<o:p></o:p>=
</span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></sp=
an></p><p class=3DMsoPlainText><span lang=3DEN-US>ensureClosed(statement)<o=
:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>ensureClosed=
(connection)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-U=
S><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>cl=
ass TestRunner:<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DE=
N-US>&nbsp;&nbsp; def __call__(self):<o:p></o:p></span></p><p class=3DMsoPl=
ainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 endTime =3D datetime.now() + duration<o:p></o:p></span></p><p class=3DMsoP=
lainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; notDone =3D True<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=
=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while notDone:<o:=
p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; notDone =3D datetime.now() =
&lt; endTime<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-U=
S><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection =3D None<o:p></o:=
p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp; insertStatement =3D None<o:p></o:p></span></p=
><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; queryStatement =3D None<o:p></o:p></span></p><p class=3DM=
soPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPl=
ainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 try:<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection =
=3D getConnection()<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=
=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 queryStatement =3D connection.createStatement()<o:p></o:p></span></p><p cl=
ass=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp; insertStatement =3D connection.createStatemen=
t()<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test1.record(in=
sertStatement)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN=
-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inse=
rtStatement.execute(&quot;insert into grinder_test values(%d, %d)&quot; %<o=
:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;(grinder.threadNumber, grinder.r=
unNumber))<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>=
<o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test2.record=
(queryStatement)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3D=
EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qu=
eryStatement.execute(&quot;select count(*) from grinder_test&quot;)<o:p></o=
:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p><=
/span></p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; finally:<o:p></o:p></span></p><p class=3DMsoPlai=
nText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; ensureClosed(insertStatement)<o:p></o:p></span></p><p clas=
s=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp; ensureClosed(queryStatement)<o:p></o:p></span><=
/p><p class=3DMsoPlainText><span lang=3DEN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ensureClosed(connection)<o:p></o:p></=
span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span=
></p></div></body></html>
--__1444899729784211502abhmp0002.oracle.com--


--===============1762218786475368345==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------

--===============1762218786475368345==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
grinder-use mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/grinder-use

--===============1762218786475368345==--