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
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)
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
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('/'))
def benchmark_request(middleware_classes): settings.MIDDLEWARE_CLASSES = middleware_classes req_factory = RequestFactory() handler = WSGIHandler() handler.load_middleware() handler.get_response(req_factory.get('/'))