2016-03-22 2 views
2

Я пытаюсь выполнить нагрузочный тест для сайта на основе Django.Правильная загрузка файла POST (тестирование нагрузки с помощью Locust)

Я использую Locust 0.7.3 и 2.7.10 питон

Здесь я делаю POST - заполни форму и приложив некоторые файл:

class WebsiteTasks(TaskSet): 
    def on_start(self): 
     self.client.get("/") 

    @task 
    def submit(self): 
     response = self.client.get("/submit/") 
     csrftoken = response.cookies['csrftoken'] 
     attach = open('file.pdf', 'rb') 

     r = self.client.post("/submit/", { 
      'csrfmiddlewaretoken': csrftoken, 
      'password': smart_str(u'wkefjgui'), 
      'payload': smart_str(u'kjsdgfljdsh'), 
      'docfile': attach, 
      'commit': smart_str(u'Вкрапить/Embed'), 
     }) 

Все, казалось, было нормально, но при загрузке сервера папке нет файла!

Что я делаю неправильно?

ответ

2

Ну, я нашел решение, и я надеюсь, что это будет полезно для кого-то:

Здесь описано, как Django обрабатывает файл: How to send a "multipart/form-data" with requests in python?

И рецепт для определения параметров «файлы» в пост функции :

r = self.client.post("/submit/", data={ 
     'csrfmiddlewaretoken': csrftoken, 
     'password': smart_str(u'wkefjgui'), 
     'payload': smart_str(u'kjsdgfljdsh'), 
     'commit': smart_str(u'Вкрапить/Embed'), 
     }, files={'docfile': attach}) 
Смежные вопросы