我正在尝试对基于 Django 的网站进行负载测试。
我使用 Locust 0.7.3 和 python 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'),
})
似乎一切正常,但服务器的上传文件夹中没有文件!
我做错了什么?
最佳答案
好吧,我找到了解决方案,希望它对某人有用:
这里描述了 Django 是如何处理文件的: How to send a "multipart/form-data" with requests in python?
配方是在 post 函数中定义 'files' 参数:
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})
关于python - 正确的 POST 文件上传(使用 Locust 进行负载测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36163355/