Простой вопрос действительноМогу ли я замедлить Django
./manage.py runserver
Могу ли я замедлить localhost:8000
на моей машине развития, поэтому я могу имитировать загрузку файлов и работу на внешний вид и загрузки Ajax?
Простой вопрос действительноМогу ли я замедлить Django
./manage.py runserver
Могу ли я замедлить localhost:8000
на моей машине развития, поэтому я могу имитировать загрузку файлов и работу на внешний вид и загрузки Ajax?
В зависимости от того, где вы хотите симулировать такое, вы могли бы просто поспать?
from time import sleep
sleep(500)
Это мой любимый способ проверить тайм-ауты HttpRequest на стороне клиента. –
Хорошая идея. Мне это нравится! – Sevenearths
Вы можете написать customized upload handler или текущий обработчик загрузки подкласса, чтобы в основном замедлить метод receive_data_chunk()
. Или установите точку останова pdb внутри receive_data_chunk()
и вручную выполните загрузку. Или даже проще, попробуйте загрузить большой файл.
На OSX или с FreeBSD, вы можете использовать ipfw
для ограничения пропускной способности отдельных портов:
sudo ipfw pipe 1 config bw 1Bytes/s delay 100ms
sudo ipfw add 1 pipe 1 src-port 8000
Не забудьте удалить его, когда он не нужен больше:
sudo ipfw delete 1
Для osx есть также бесплатное приложение, которое позволит t его:
Мне нравится этот метод в целом для тестирования загрузки страниц для более медленных посетителей. Обработка DOM выглядит очень по-разному, когда элементы постоянно загружаются ...! –
Итак, если я тестирую веб-страницу на своем Mac с сервера «localhost» Django на том же, это будет имитировать задержанную загрузку страницы? – SexyBeast
Я большой поклонник Чарльз HTTP прокси. Он позволяет дросселировать соединение и может имитировать все виды сетевых условий.
Используйте медленный файл обработчик загрузки с Джанго-Габбинс:
import time
from django.core.files.uploadhandler import FileUploadHandler
class SlowFileUploadHandler(FileUploadHandler):
"""
This is an implementation of the Django file upload handler which will
sleep between processing chunks in order to simulate a slow upload. This
is intended for development when creating features such as an AJAXy
file upload progress bar, as uploading to a local process is often too
quick.
"""
def receive_data_chunk(self, raw_data, start):
time.sleep(2)
return raw_data
def file_complete(self, file_size):
return None
Вы можете включить это в глобальном масштабе, добавив его:
FILE_UPLOAD_HANDLERS = (
"myapp.files.SlowFileUploadHandler",
"django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler",
)
или включить его для конкретный запрос:
request.upload_handlers.insert(0, SlowFileUploadHandler())
Убедитесь, что запрос исключен из проверки CSRF, как указано в https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#id1
Запустить его в виртуализованной среде, которая позволяет вам контролировать скорость выполнения? – Marcin
Вы можете загружать файлы большего размера. – jpic