我使用 TCPProxy 控制台创建了 jython 测试用例脚本。但是这些都不起作用,而我正在尝试运行。
我的测试用例是
示例33.py
# The Grinder 3.11
# HTTP script recorded by TCPProxy at 29 Jul, 2014 10:19:35 AM
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 holidays-2014'), url0, headers0)
request302 = createRequest(Test(302, 'GET Untitled_3.png'), url0)
request303 = createRequest(Test(303, 'GET Untitled_3.png'), 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', 'Mon, 28 Jul 2014 10:47:07 +0000'),
NVPair('If-None-Match', '\"1406544427\"'), ))
self.token_form_build_id = \
httpUtilities.valueFromHiddenInput('form_build_id') # 'form-MvE2-tuZ5-faR4EyZ0XSU6qaOpz8rex1-4u...'
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(27)
# Expecting 301 'Moved Permanently'
request202.GET('/home')
grinder.sleep(18)
request203.GET('/', None,
( NVPair('If-Modified-Since', 'Tue, 29 Jul 2014 04:47:09 +0000'),
NVPair('If-None-Match', '\"1406609229\"'), ))
return result
def page3(self):
"""GET holidays-2014 (requests 301-303)."""
result = request301.GET('/content/holidays-2014')
self.token_form_build_id = \
httpUtilities.valueFromHiddenInput('form_build_id') # 'form-VWPMyhphM5Lg3O6qyQx1iS_uc6p20Scw7cY...'
self.token_form_token = \
httpUtilities.valueFromHiddenInput('form_token') # 'DT9Ya9GCdGKlSNIEMLP4noRGMnd4Dvs2WVgMsEsw...'
self.token_form_id = \
httpUtilities.valueFromHiddenInput('form_id') # 'search_block_form'
grinder.sleep(47)
request302.GET('/sites/default/files/Untitled_3.png', None,
( NVPair('Accept', 'image/png,image/*;q=0.8,*/*;q=0.5'),
NVPair('Referer', 'http://mycompany.com/content/holidays-2014'), ))
return result
def __call__(self):
"""Called for every run performed by the worker thread."""
self.page1() # GET / (request 101)
grinder.sleep(279)
self.page2() # POST home (requests 201-203)
grinder.sleep(147)
self.page3() # GET holidays-2014 (requests 301-303)
# 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.properties
grinder.script=sample33.py
grinder.processes=1
grinder.threads=1
grinder.runs=0
grinder.logDirectory=log
grinder.numberOfOldLogs=2
grinder.useConsole=false
我的输出:
2014-07-29 11:01:10,579 INFO myuser-0 thread-0 [ run-193, test-301 ]: http://mycompany.com/content/holidays-2014 -> 403 Forbidden, 18674 bytes
2014-07-29 11:01:10,579 INFO myuser-0 thread-0 [ run-193 ]: sleeping for 48 ms
2014-07-29 11:01:10,652 INFO myuser-0 thread-0 [ run-193, test-302 ]: http://mycompany.com/sites/default/files/Untitled_3.png -> 200 OK, 130429 bytes
2014-07-29 11:01:10,996 INFO myuser-0 thread-0 [ run-194, test-101 ]: http://mycompany.com/ -> 403 Forbidden, 17617 bytes
2014-07-29 11:01:10,997 INFO myuser-0 thread-0 [ run-194 ]: sleeping for 263 ms
2014-07-29 11:01:11,686 INFO myuser-0 thread-0 [ run-194, test-201 ]: http://mycompany.com/home?destination=node/103 -> 302 Found, 0 bytes [Redirect, ensure the next URL is http://mycompany.com/home]
2014-07-29 11:01:11,686 INFO myuser-0 thread-0 [ run-194 ]: sleeping for 27 ms
2014-07-29 11:01:11,973 INFO myuser-0 thread-0 [ run-194, test-202 ]: http://mycompany.com/home -> 301 Moved Permanently, 0 bytes [Redirect, ensure the next URL is http://mycompany.com/]
2014-07-29 11:01:11,973 INFO myuser-0 thread-0 [ run-194 ]: sleeping for 17 ms
2014-07-29 11:01:12,229 INFO myuser-0 thread-0 [ run-194, test-203 ]: http://mycompany.com/ -> 403 Forbidden, 17617 bytes
2014-07-29 11:01:12,229 INFO myuser-0 thread-0 [ run-194 ]: sleeping for 141 ms
2014-07-29 11:01:12,681 INFO myuser-0 thread-0 [ run-194, test-301 ]: http://mycompany.com/content/holidays-2014 -> 403 Forbidden, 18674 bytes
2014-07-29 11:01:12,682 INFO myuser-0 thread-0 [ run-194 ]: sleeping for 46 ms
2014-07-29 11:01:12,751 INFO myuser-0 thread-0 [ run-194, test-302 ]: http://mycompany.com/sites/default/files/Untitled_3.png -> 200 OK, 130429 bytes
2014-07-29 11:01:13,033 INFO myuser-0 thread-0 [ run-195, test-101 ]: http://mycompany.com/ -> 403 Forbidden, 17617 bytes
2014-07-29 11:01:13,034 INFO myuser-0 thread-0 [ run-195 ]: sleeping for 307 ms
2014-07-29 11:01:13,937 INFO myuser-0 thread-0 [ run-195, test-201 ]: http://mycompany.com/home?destination=node/103 -> 302 Found, 0 bytes [Redirect, ensure the next URL is http://mycompany.com/home]
2014-07-29 11:01:13,938 INFO myuser-0 thread-0 [ run-195 ]: sleeping for 27 ms
2014-07-29 11:01:14,223 INFO myuser-0 thread-0 [ run-195, test-202 ]: http://mycompany.com/home -> 301 Moved Permanently, 0 bytes [Redirect, ensure the next URL is http://mycompany.com/]
2014-07-29 11:01:14,224 INFO myuser-0 thread-0 [ run-195 ]: sleeping for 18 ms
2014-07-29 11:01:14,480 INFO myuser-0 thread-0 [ run-195, test-203 ]: http://mycompany.com/ -> 403 Forbidden, 17617 bytes
2014-07-29 11:01:14,480 INFO myuser-0 thread-0 [ run-195 ]: sleeping for 149 ms
2014-07-29 11:01:14,931 INFO myuser-0 thread-0 [ run-195, test-301 ]: http://mycompany.com/content/holidays-2014 -> 403 Forbidden, 18674 bytes
2014-07-29 11:01:14,932 INFO myuser-0 thread-0 [ run-195 ]: sleeping for 49 ms
2014-07-29 11:01:15,003 INFO myuser-0 thread-0 [ run-195, test-302 ]: http://mycompany.com/sites/default/files/Untitled_3.png -> 200 OK, 130429 bytes
2014-07-29 11:01:15,277 INFO myuser-0 thread-0 [ run-196, test-101 ]: http://mycompany.com/ -> 403 Forbidden, 17617 bytes
2014-07-29 11:01:15,278 INFO myuser-0 thread-0 [ run-196 ]: sleeping for 301 ms
2014-07-29 11:01:15,332 INFO myuser-0 : communication shut down
2014-07-29 11:01:15,340 INFO myuser-0 thread-0 [ run-196 ]: shut down
2014-07-29 11:01:15,341 INFO myuser-0 thread-0: finished 196 runs
2014-07-29 11:01:15,341 INFO myuser-0 : elapsed time is 404648 ms
2014-07-29 11:01:15,341 INFO myuser-0 : Final statistics for this process:
2014-07-29 11:01:15,350 INFO myuser-0 :
Tests Errors Mean Test Test Time TPS Mean Response Response Mean time to Mean time to Mean time to
Time (ms) Standard response bytes per errors resolve host establish first byte
Deviation length second connection
(ms)
(Test 100 197 0 286.38 35.05 0.49 0.00 0.00 0 - - 0.00) "Page 1"
Test 101 197 0 285.10 34.57 0.49 17617.00 8576.71 197 0.10 2.25 265.98 "GET /"
(Test 200 196 0 970.07 233.03 0.48 0.00 0.00 0 - - 0.00) "Page 2"
Test 201 196 0 453.68 223.42 0.48 0.00 0.00 0 0.03 2.51 453.05 "POST home"
Test 202 196 0 219.01 30.85 0.48 0.00 0.00 0 0.02 2.26 218.58 "GET home"
Test 203 196 0 250.14 22.02 0.48 17617.00 8533.17 196 0.02 2.20 230.47 "GET /"
(Test 300 196 0 379.49 33.35 0.48 0.00 0.00 0 - - 0.00) "Page 3"
Test 301 196 0 302.42 32.69 0.48 18674.00 9045.16 196 0.01 2.20 283.80 "GET holidays-2014"
Test 302 196 0 28.66 4.78 0.48 130429.00 63176.10 0 0.01 2.19 6.21 "GET Untitled_3.png"
Totals 1177 0 256.53 157.42 2.91 30711.70 89331.14 589 0.03 2.27 243.03
(589) (0)
Tests resulting in error only contribute to the Errors column.
Statistics for individual tests can be found in the data file, including
(possibly incomplete) statistics for erroneous tests. Composite tests
are marked with () and not included in the totals.
它只显示 403 错误的所有页面。我也尝试录制(保存每一页)。只有登录页面只记录(保存)没有其他页面。不来 请帮助我,是否需要更改自动生成的代码中的任何内容?
什么是“名称”和“通行证”字段,每个网址是否稳定,否则我必须根据我的网站进行更改?