예제 #1
0
def benchmark():

    req_factory = RequestFactory()
    handler = WSGIHandler()
    handler.load_middleware()

    with_middleware_time = time()
    handler.get_response(req_factory.get('/'))
    with_middleware_time = time() - with_middleware_time

    no_middleware_time = time()
    index(req_factory.get('/'))
    no_middleware_time = time() - no_middleware_time

    return with_middleware_time - no_middleware_time
예제 #2
0
def ProcessRequest(url, method='GET', POST=None, headers={}, cookies={}, content_type=None):
	from django.test import RequestFactory
	request_factory = RequestFactory()

	from django.core.handlers.wsgi import WSGIHandler
	handler = WSGIHandler()

	from urllib.parse import urlparse, parse_qsl
	url_parts = urlparse(url)

	headers.update({
		'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.170 Safari/537.36',
		'HTTP_HOST': url_parts.netloc,
		'HTTP_X_SCHEME': url_parts.scheme,
	})

	if method == 'GET':
		query = parse_qsl(url_parts.query)
		request = request_factory.get(url_parts.path, query, **headers)
	elif method == 'POST':
		request = request_factory.post(url_parts.path, POST, content_type=content_type or MULTIPART_CONTENT, **headers)
	else:
		raise ValueError("Unsupported method type: {}".format(method))

	for k, v in cookies.items():
		request.COOKIES[k] = v

	return handler.get_response(request)
예제 #3
0
def benchmark():
    req_factory = RequestFactory()
    handler = WSGIHandler()
    
    # Try first with Django's default middleware
    settings.MIDDLEWARE_CLASSES = global_settings.MIDDLEWARE_CLASSES
    handler.load_middleware()

    with_middleware_time = time()
    handler.get_response(req_factory.get('/'))
    with_middleware_time = time() - with_middleware_time

    # Now try the same process, but this time without any middleware.
    settings.MIDDLEWARE_CLASSES = []
    handler.load_middleware()

    no_middleware_time = time()
    handler.get_response(req_factory.get('/'))
    no_middleware_time = time() - no_middleware_time

    return with_middleware_time - no_middleware_time
예제 #4
0
def benchmark_request(middleware_classes):
    settings.MIDDLEWARE = settings.MIDDLEWARE_CLASSES = middleware_classes
    req_factory = RequestFactory()
    handler = WSGIHandler()
    handler.load_middleware()
    handler.get_response(req_factory.get('/'))
예제 #5
0
def benchmark_request(middleware_classes):
    settings.MIDDLEWARE_CLASSES = middleware_classes
    req_factory = RequestFactory()
    handler = WSGIHandler()
    handler.load_middleware()
    handler.get_response(req_factory.get('/'))