1
我正在使用研磨機測試我的web應用程序。我使用tcp代理生成腳本。 它工作得很好,但是當我記錄添加到它,將產生以下錯誤:記錄研磨機時出錯
Error running worker process
net.grinder.scriptengine.jython.JaythonScriptExceutionException:
SyntaxError ('invalid syntax', ('c:\\........ \\script_name.py', 79, 9,
"\tlog('Arvind Purohit')"))
(no code object) at line 0
這是我的腳本:
# The Grinder 3.9.1
# HTTP script recorded by TCPProxy at 9 Jul, 2012 3:08:10 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
log = grinder.logger.info
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)
# 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('User-Agent', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)'), ]
headers0= \
[ NVPair('Accept', '*/*'),
NVPair('Referer', 'http://192.168.1.53:8081/JSP-LOGIN/login.jsp'),
NVPair('Accept-Language', 'en-IN'), ]
headers1= \
[ NVPair('Accept', 'image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'),
NVPair('Referer', 'http://192.168.1.53:8081/JSP-LOGIN/login.jsp'),
NVPair('Accept-Language', 'en-IN'), ]
headers2= \
[ NVPair('Accept', 'image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'),
NVPair('Referer', 'http://192.168.1.53:8081/JSP-LOGIN/welcome.jsp'),
NVPair('Accept-Language', 'en-IN'), ]
url0 = 'http://192.168.1.53:8081'
# Create an HTTPRequest for each request, then replace the
# reference to the HTTPRequest with an instrumented version.
# You can access the unadorned instance using request101.__target__.
# ========= START -================
request101 = HTTPRequest(url=url0)
request101 = Test(101, 'GET login.jsp').wrap(request101)
request102 = HTTPRequest(url=url0, headers=headers0)
request102 = Test(102, 'GET valid.js').wrap(request102)
request103 = HTTPRequest(url=url0)
request103 = Test(103, 'GET favicon.ico').wrap(request103)
# ====== login=============
request201 = HTTPRequest(url=url0, headers=headers1)
request201 = Test(201, 'POST loginmid.jsp').wrap(request201)
request202 = HTTPRequest(url=url0, headers=headers1)
request202 = Test(202, 'GET welcome.jsp').wrap(request202)
# ==========LOGOUT============
request301 = HTTPRequest(url=url0, headers=headers2)
request301 = Test(301, 'GET logout.jsp').wrap(request301)
request302 = HTTPRequest(url=url0, headers=headers2)
request302 = Test(302, 'GET login.jsp').wrap(request302)
request303 = HTTPRequest(url=url0, headers=headers0)
request303 = Test(303, 'GET valid.js').wrap(request303)
class TestRunner:
"""A TestRunner instance is created for each worker thread."""
# A method for each recorded page.
def page1(self):
"""GET login.jsp (requests 101-103)."""
result = request101.GET('/JSP-LOGIN/login.jsp', None,
(NVPair('Accept', 'image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'),
NVPair('Accept-Language', 'en-IN'),))
log('ARVIND PUROHIT')
grinder.sleep(13)
request102.GET('/JSP-LOGIN/valid.js')
grinder.sleep(62)
request103.GET('/favicon.ico', None,
(NVPair('Accept', '*/*'),))
return result
def page2(self):
"""POST loginmid.jsp (requests 201-202)."""
# Expecting 302 'Moved Temporarily'
result = request201.POST('/JSP-LOGIN/loginmid.jsp',
(NVPair('userName', 'A'),
NVPair('password', 'A'),
NVPair('Submit', 'Login'),),
(NVPair('Content-Type', 'application/x-www-form-urlencoded'),))
grinder.sleep(15)
request202.GET('/JSP-LOGIN/welcome.jsp')
self.token_flag = \
httpUtilities.valueFromBodyURI('flag') # 'edit'
return result
def page3(self):
"""GET logout.jsp (requests 301-303)."""
# Expecting 302 'Moved Temporarily'
result = request301.GET('/JSP-LOGIN/logout.jsp')
request302.GET('/JSP-LOGIN/login.jsp')
request303.GET('/JSP-LOGIN/valid.js', None,
(NVPair('If-Modified-Since', 'Tue, 03 Jul 2012 10:18:40 GMT'),
NVPair('If-None-Match', 'W/\"4436-1341310720000\"'),))
return result
def __call__(self):
"""Called for every run performed by the worker thread."""
self.page1() # GET login.jsp (requests 101-103)
grinder.sleep(12893)
self.page2() # POST loginmid.jsp (requests 201-202)
grinder.sleep(16403)
self.page3() # GET logout.jsp (requests 301-303)
def instrumentMethod(test, method_name, c=TestRunner):
"""Instrument a method with the given Test."""
unadorned = getattr(c, method_name)
import new
method = new.instancemethod(test.wrap(unadorned), None, c)
setattr(c, method_name, method)
# Replace each method with an instrumented version.
# You can call the unadorned method using self.page1.__target__().
instrumentMethod(Test(100, 'Page 1'), 'page1')
instrumentMethod(Test(200, 'Page 2'), 'page2')
instrumentMethod(Test(300, 'Page 3'), 'page3')
請以文字提供錯誤。該圖像是很小的閱讀。 – jurgemaister 2012-07-09 09:51:45
Starnge行爲.... 我只是複製粘貼上述腳本重現錯誤,它工作正常,但同樣的事情,我用另一個腳本記錄和我得到相同的錯誤?這是與編碼有關的問題? 順便說一句,錯誤是 *錯誤worker-bootstrap:運行工作進程錯誤process.grinder.scriptengine.jython.JaythonScriptExceutionException:SyrntexError('invalid syntax',('c:\\ ........ \\ scrypt_name .py',,,「\ tlog('Arvind Purohit')」))* – Arvind 2012-07-09 10:45:55