python - 正确的 POST 文件上传(使用 Locust 进行负载测试)

标签 python django locust

我正在尝试对基于 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/

相关文章:

django - `django-admin.py startproject myproject .`中的点

python - Django - 原始查询必须包含主键

python - Locust 负载测试脚本错误 - 连接已中止。',RemoteDisconnected

locust - 使用带有 locust 的多 CPU 平台

javascript - 如何使用ajax函数发送表单而不刷新页面,我错过了什么?我必须为此使用rest-framework吗?

python - 在 centos 6.10 python 3.6 上将 Scrapyd 作为守护进程运行

Visual Studio 中的 Python 2.7.11 在 cElementTree.py 中抛出异常

python - ATBSWP 第 4 章练习项目 : Comma Code

python - 使用 Locust 对 docker-compose 应用程序进行性能测试时,连接被拒绝错误 (111)

Python:停止套接字接收进程