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> </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: TPS 6.61.<o:p></o:p></span></p><p class=3D=
MsoPlainText><span lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoP=
lainText><span lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoPlain=
Text><span lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoPlainText=
><span lang=3DEN-US>Tests &=
nbsp; Errors &nbs=
p; Mean Test &nb=
sp; Test Time TPS &nbs=
p; <o:p></o:p></span></p><p class=3DMsoPlainT=
ext><span lang=3DEN-US> &nbs=
p; &=
nbsp; &nbs=
p; &=
nbsp; Time (ms) Standa=
rd =
<o:p></o:p></span></p><p class=3DMsoPlainText=
><span lang=3DEN-US> &=
nbsp; &nbs=
p; &=
nbsp; &nbs=
p; Deviation &nbs=
p; <o:p></o:p></span></p><p class=
=3DMsoPlainText><span lang=3DEN-US> &nbs=
p; &=
nbsp; &nbs=
p; &=
nbsp; (ms) =
&nb=
sp; <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>Test 1 1000 &n=
bsp; 0 &nb=
sp; 23.87  =
; 30.77 &n=
bsp; 3.31 &=
nbsp; "JDBC Test Result_Multi-Threads"<o:p></o:p></span></p=
><p class=3DMsoPlainText><span lang=3DEN-US>Test 2 &=
nbsp; 1000 0 &nb=
sp; 17.95 =
27.38 &nb=
sp; 3.31 &=
nbsp; "JDBC Test Result_Multi-Thre=
ads"<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>Total=
s 2000 &nb=
sp; 0 &nbs=
p; 20.91 =
29.27 &nb=
sp;6.61 <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>Have any suggest for improv=
e TPS value ?<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>T=
hanks!<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>&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> =
;</o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US># The sorting =
tes 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> </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> </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=
> </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>=
</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("javatest.description"))<o:p></o:p></span></p><p =
class=3DMsoPlainText><span lang=3DEN-US>test =3D Test(2, properties.get(&qu=
ot;javatest.description"))<o:p></o:p></span></p><p class=3DMsoPlainTex=
t><span lang=3DEN-US><o:p> </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> </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("ja=
vatest.fileToCompress")<o:p></o:p></span></p><p class=3DMsoPlainText><=
span lang=3DEN-US># grinder.logger.info("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> </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. 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("javatest.runMode")<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 "continuous":<o:p></o:p></span></p><p class=3DMsoP=
lainText><span lang=3DEN-US> # figure out how long to run the test<o:=
p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> m =3D =
int(properties.getProperty("javatest.durationMinutes", "0&qu=
ot;))<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> =
; h =3D int(properties.getProperty("javatest.durationHours", &quo=
t;0"))<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US=
> d =3D int(properties.getProperty("javatest.durationDays",=
"0"))<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3D=
EN-US> duration =3D timedelta(minutes=3Dm,hours=3Dh,days=3Dd)<o:p></o=
:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> grinder.log=
ger.info("run mode is continuous, duration is " + str(duration))<=
o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>elif runMod=
e =3D=3D "runOnce":<o:p></o:p></span></p><p class=3DMsoPlainText>=
<span lang=3DEN-US> grinder.logger.info("run mode is run once&qu=
ot;)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> =
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> grinder.logger.info("run mode not set or n=
ot recongized, default to run once")<o:p></o:p></span></p><p class=3DM=
soPlainText><span lang=3DEN-US> duration =3D timedelta(minutes=3D0)<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></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> </o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-U=
S>test1 =3D Test(1, "Database insert")<o:p></o:p></span></p><p cl=
ass=3DMsoPlainText><span lang=3DEN-US>test2 =3D Test(2, "Database quer=
y")<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># 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> </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> re=
turn DriverManager.getConnection(<o:p></o:p></span></p><p class=3DMsoPlainT=
ext><span lang=3DEN-US> "jdb=
c:oracle:thin:@unpgv4010.us.oracle.com:1521:orcl", "PBPUBLIC"=
;, "PBPUBLIC")<o:p></o:p></span></p><p class=3DMsoPlainText><span=
lang=3DEN-US><o:p> </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> try: object.close()<o:p></o:p><=
/span></p><p class=3DMsoPlainText><span lang=3DEN-US> exc=
ept: pass<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># 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> </o:p></span></p><p class=3DMsoPlainText><span lang=
=3DEN-US>try: statement.execute("drop table grinder_test")<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> </o:=
p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>statement.execute(&=
quot;create table grinder_test(thread number, run number)")<o:p></o:p>=
</span></p><p class=3DMsoPlainText><span lang=3DEN-US><o:p> </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> </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> def __call__(self):<o:p></o:p></span></p><p class=3DMsoPl=
ainText><span lang=3DEN-US> =
endTime =3D datetime.now() + duration<o:p></o:p></span></p><p class=3DMsoP=
lainText><span lang=3DEN-US>  =
; notDone =3D True<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=
=3DEN-US> while notDone:<o:=
p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> &=
nbsp; notDone =3D datetime.now() =
< endTime<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-U=
S><o:p> </o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&n=
bsp; connection =3D None<o:p></o:=
p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> &=
nbsp; insertStatement =3D None<o:p></o:p></span></p=
><p class=3DMsoPlainText><span lang=3DEN-US> &=
nbsp; queryStatement =3D None<o:p></o:p></span></p><p class=3DM=
soPlainText><span lang=3DEN-US><o:p> </o:p></span></p><p class=3DMsoPl=
ainText><span lang=3DEN-US> =
try:<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> =
; connection =
=3D getConnection()<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=
=3DEN-US> =
queryStatement =3D connection.createStatement()<o:p></o:p></span></p><p cl=
ass=3DMsoPlainText><span lang=3DEN-US> &=
nbsp; insertStatement =3D connection.createStatemen=
t()<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> &=
nbsp; test1.record(in=
sertStatement)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN=
-US> inse=
rtStatement.execute("insert into grinder_test values(%d, %d)" %<o=
:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US> =
&nb=
sp; =
(grinder.threadNumber, grinder.r=
unNumber))<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>&nbs=
p; test2.record=
(queryStatement)<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3D=
EN-US> qu=
eryStatement.execute("select count(*) from grinder_test")<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> &nbs=
p; finally:<o:p></o:p></span></p><p class=3DMsoPlai=
nText><span lang=3DEN-US> &n=
bsp; ensureClosed(insertStatement)<o:p></o:p></span></p><p clas=
s=3DMsoPlainText><span lang=3DEN-US> &nb=
sp; ensureClosed(queryStatement)<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-US><o:p> </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==--