[ptt-users] Stress Test data from input file
Mark.Lutton at thomson.com
Mark.Lutton at thomson.com
Fri Dec 22 09:03:02 PST 2006
For anyone who doesn't know Python, it's worthwhile getting a book and
going through it. (I'm reading "The Quick Python Book" by Harms and
McDonald, published by Manning.)
It's fast and easy to learn if you know Java or C++ or other
object-oriented languages.
Unlike Java or C++, you can add members to objects at any time. For
example:
In the line
testcase = newtestcase()
you create an object named "testcase" of class test. Then in the line
testcase.userdata = userdatefile.readline()
you add an "instance variable" to testcase. It's like defining a member
of a class, but you do it on the fly and it's only in this instance.
In the module test.py, which defines the class test, you can reference
that variable:
print self.userdata
(If it doesn't exist, you'll get an exception, which you can handle with
"try - except" if you want.)
You can play with Jython by writing a script in TestMaker or by running
it interactively. Here is a Windows batch file to run Jython alone:
@echo off
set java_home=C:\j2sdk1.4.2_08
SETLOCAL
if "%TESTMAKER_HOME%"=="" set TESTMAKER_HOME=C:\TestMaker44
if "%JYTHON_HOME%"=="" set JYTHON_HOME=%TESTMAKER_HOME%\lib\jython
set TMCP=%TESTMAKER_HOME%\lib\jython\jython.jar
set LOCALCP=%TMCP%
echo CLASSPATH=%LOCALCP%
"%JAVA_HOME%\bin\java.exe" "-Dpython.home=%JYTHON_HOME%" -classpath
"%LOCALCP%" org.python.util.jython %ARGS%
ENDLOCAL
________________________________
From: users-bounces at lists.pushtotest.com
[mailto:users-bounces at lists.pushtotest.com] On Behalf Of Thieme.Geoff
Sent: Thursday, December 21, 2006 6:40 PM
To: TestMaker users list
Subject: RE: [ptt-users] Stress Test data from input file
Based off a couple of responses I figured out how to get this working
the way I wanted. Using the code below I'm able to read a new record for
each loop used by an agent.
In master.py I added:
def startTestCase( usercount, duration ):
'''
Instantiate a thread for each virtual user (concurrent request).
'''
global record, logpath, callback_running, callback_record, running
print "Start test with", usercount, " virtual users for", duration,
"minutes."
agentid = 0
tr = []
running = 1
userdatafile =
open('S:\\d3a\\docs\\TestMakerStressTesting\\xstest\\userdata.tsv', 'r')
userdatafile.readline() # Remove header line from input file
for i in range( usercount ):
print ".",
agentid += 1
testcase = newtestcase()
testcase.userdata = userdatafile.readline()
tr = TestRunner( i, duration, usercount, testcase,
callback_running, callback_record )
tr.start()
waitSeconds( startupdelay )
userdatafile.close()
print " >start",
And in test.py I added:
userid, passwd, billid = self.userdata.rstrip().split( '\t' , 2
)
Thanks for the help guys,
Geoff
________________________________
From: users-bounces at lists.pushtotest.com
[mailto:users-bounces at lists.pushtotest.com] On Behalf Of
Mark.Lutton at thomson.com
Sent: Wednesday, December 20, 2006 8:27 PM
To: users at lists.pushtotest.com
Subject: RE: [ptt-users] Stress Test data from input file
Is the code to open the file in a different module? Try making userdata
an instance variable:
In master.py:
test.userdata=open('S:\\d3a\\docs\\TestMakerStressTesting\\xstest\\userd
ata.tsv', 'r')
in test.py:
userid, passwd, billid = self.userdata.readline().rstrip().split( '\t'
, 2 )
Mark Lutton
Business Intelligence Services, a Thomson Business
________________________________
From: users-bounces at lists.pushtotest.com on behalf of Thieme.Geoff
Sent: Wed 12/20/2006 6:03 PM
To: TestMaker users list
Subject: [ptt-users] Stress Test data from input file
I'm using TestMaker 4.4. I created an xstest\test.py file that reads
input data from a file. My code works for running just test.py and
getting variable user data from userdata.tsv. Now I'm trying to use
xstest\master.py to create a stress test which will use a different row
of data from my input file for each test.
I tried a couple approaches but neithor worked. When I open the input
file as userdata in master.py, test.py is unable to access the userdata
variable to do a readline().
Any suggests on getting this to work? I found no example scripts which
get test data from input files.
Working code from test.py:
...
def setUp( self ):
''' Add any needed set-up code here. '''
# Remove header line from input file
self.log( 1, "Using the userdata values :%s:" % (
userdata.readline() ) )
self.log( 1, "test: setUp" )
self.config()
def runTest( self ):
''' Run the test '''
self.log( 1, "test: runTest" )
# Read data from input files
self.log( 1, "Testing with:")
# Get 3 tab seperated data values, ignore any extra values
listed on that line
userid, passwd, billid = userdata.readline().rstrip().split(
'\t' , 2 )
self.log( 1, "userid :%s:" % ( userid ) )
self.log( 1, "passwd :%s:" % ( passwd ) )
self.log( 1, "bill id :%s:" % ( billid ) )
...
The settings below were found in the Advanced Options panel of the
Recorder.
'''
test = test( 1, 'console file ', 1,
'20.|300|301|302|303|304|307|401|403|408|41.', 'log.xml', 0, 1, 1, 1, 1,
'test', 1 )
# Run test using userdata input file
try:
userdata=open('S:\\d3a\\docs\\TestMakerStressTesting\\xstest\\userdata.t
sv', 'r')
test.setUp()
test.runTest()
test.tearDown()
finally:
userdata.close()
test.closelog()
print "done"
Thanks for any help,
Geoff
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cake.pushtotest.com/pipermail/users/attachments/20061222/96b00e94/attachment.htm
More information about the Users
mailing list