Auto Generated Jython Sript is not working -- Need help
Ravi Kumar Maddi <[email protected]> Mon, 28 Jul 2014 15:37:35 +0530
| Newsgroups | gmane.comp.java.grinder.user |
|---|---|
| Message-ID | <CAP3Rjauw2zJEHQ5+ct7GEOuq6pneh=d0ZmXwfKpVQ9ZESOAqfQ@mail.gmail.com> |
I generated Jython Script script by using TCPProxy Console. I generated script for just 4 pages. But I am trying to run that script with grinder agent, But it is not working. I am getting only login page only working after every page giving 403 error. Please find attached my grinder.properties and grinder.py files. Please need help...... ------------------------------------------------------------------------------ Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future. http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk _______________________________________________ grinder-use mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/grinder-use
grinder.properties
(application/octet-stream, 160 B) - not displayed
grinder.py
(application/octet-stream, 5.9 KB)
# The Grinder 3.11
# HTTP script recorded by TCPProxy at 25 Jul, 2014 6:07:04 PM
from net.grinder.script import Test
from net.grinder.script.Grinder import grinder
from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest
from HTTPClient import NVPair
connectionDefaults = HTTPPluginControl.getConnectionDefaults()
httpUtilities = HTTPPluginControl.getHTTPUtilities()
# To use a proxy server, uncomment the next line and set the host and port.
# connectionDefaults.setProxyServer("localhost", 8001)
def createRequest(test, url, headers=None):
"""Create an instrumented HTTPRequest."""
request = HTTPRequest(url=url)
if headers: request.headers=headers
test.record(request, HTTPRequest.getHttpMethodFilter())
return request
# These definitions at the top level of the file are evaluated once,
# when the worker process is started.
connectionDefaults.defaultHeaders = \
[ NVPair('Accept-Encoding', 'gzip, deflate'),
NVPair('Accept-Language', 'en-US,en;q=0.5'),
NVPair('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0'), ]
headers0= \
[ NVPair('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
NVPair('Referer', 'http://mycompany.com/'), ]
url0 = 'http://mycompany.com:80'
request101 = createRequest(Test(101, 'GET /'), url0)
request201 = createRequest(Test(201, 'POST home'), url0, headers0)
request202 = createRequest(Test(202, 'GET home'), url0, headers0)
request203 = createRequest(Test(203, 'GET /'), url0, headers0)
request301 = createRequest(Test(301, 'GET about'), url0, headers0)
request401 = createRequest(Test(401, 'GET architecture-group'), url0)
request402 = createRequest(Test(402, 'GET Project Del.PNG'), url0)
request403 = createRequest(Test(403, 'GET 1.gif'), url0)
class TestRunner:
"""A TestRunner instance is created for each worker thread."""
# A method for each recorded page.
def page1(self):
"""GET / (request 101)."""
result = request101.GET('/', None,
( NVPair('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
NVPair('If-Modified-Since', 'Fri, 25 Jul 2014 11:48:08 +0000'),
NVPair('If-None-Match', '\"1406288888\"'), ))
self.token_form_build_id = \
httpUtilities.valueFromHiddenInput('form_build_id') # 'form-jL1d4hHwiL-1rr34g20q_UNP64QdrOSC33v...'
self.token_form_id = \
httpUtilities.valueFromHiddenInput('form_id') # 'user_login_block'
return result
def page2(self):
"""POST home (requests 201-203)."""
self.token_destination = \
'node/103'
# Expecting 302 'Found'
result = request201.POST('/home' +
'?destination=' +
self.token_destination,
( NVPair('name', 'myuser'),
NVPair('pass', 'mypassword'),
NVPair('form_build_id', self.token_form_build_id),
NVPair('form_id', self.token_form_id),
NVPair('op', 'Log in'), ),
( NVPair('Content-Type', 'application/x-www-form-urlencoded'), ))
grinder.sleep(61)
# Expecting 301 'Moved Permanently'
request202.GET('/home')
grinder.sleep(20)
request203.GET('/', None,
( NVPair('If-Modified-Since', 'Fri, 25 Jul 2014 12:35:04 +0000'),
NVPair('If-None-Match', '\"1406291704\"'), ))
return result
def page3(self):
"""GET about (request 301)."""
result = request301.GET('/content/about')
# 2 different values for token_page_id found in response, using the first one.
self.token_page_id = \
httpUtilities.valueFromBodyURI('page_id') # '1155'
self.token_form_build_id = \
httpUtilities.valueFromHiddenInput('form_build_id') # 'form-lR-C1y-2HiOQm6WAC4tsqp_jra5l2yQ9KKR...'
self.token_form_token = \
httpUtilities.valueFromHiddenInput('form_token') # 'kogSWRmK-dBEE5AdCKul1rF5iNooQxicjFQaxfGL...'
self.token_form_id = \
httpUtilities.valueFromHiddenInput('form_id') # 'search_block_form'
return result
def page4(self):
"""GET architecture-group (requests 401-403)."""
result = request401.GET('/content/architecture-group', None,
( NVPair('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
NVPair('Referer', 'http://mycompany.com/content/about'), ))
self.token_form_build_id = \
httpUtilities.valueFromHiddenInput('form_build_id') # 'form-GnuBgklTmk0f7lre8pCi6Aqq30XQoXLLbl2...'
grinder.sleep(44)
request402.GET('/sites/default/files/Project Del.PNG', None,
( NVPair('Accept', 'image/png,image/*;q=0.8,*/*;q=0.5'),
NVPair('Referer', 'http://mycompany.com/content/architecture-group'), ))
grinder.sleep(194)
request403.GET('/sites/all/themes/perspective/images/loaders/1.gif', None,
( NVPair('Accept', 'image/png,image/*;q=0.8,*/*;q=0.5'),
NVPair('Referer', 'http://mycompany.com/sites/all/themes/perspective/css/themes/40.css?n8fsyg'), ))
return result
def writeToFile(self, text):
filename = "pages/%s-nip_page-%d.html" % (grinder.processName, grinder.runNumber)
pageFile = open(filename, "w")
print >> pageFile, text
file.close()
def __call__(self):
"""Called for every run performed by the worker thread."""
result = self.page1() # GET / (request 101)
self.writeToFile(result.text)
grinder.sleep(30176)
result = self.page2() # POST home (requests 201-203)
self.writeToFile(result.text)
grinder.sleep(10965)
result = self.page3() # GET about (request 301)
self.writeToFile(result.text)
grinder.sleep(2440)
result = self.page4() # GET architecture-group (requests 401-403)
self.writeToFile(result.text)
# Instrument page methods.
Test(100, 'Page 1').record(TestRunner.page1)
Test(200, 'Page 2').record(TestRunner.page2)
Test(300, 'Page 3').record(TestRunner.page3)
Test(400, 'Page 4').record(TestRunner.page4)