Python Locust负载测试如何上传和提交xml文件



我正试图计算出有多少并发用户可以使用Locust 上传xml文件

蝗虫档案

from locust import HttpLocust, TaskSet, task
class HttpSession(TaskSet):
@task
def post_img(self):
headers = {'1': '1', '2': '2'}
test_file = 'c:\xmlfoldera.xml'
url='/uploadxml'
self.client.request('POST', '/upload', files={'file': open(test_file, 'rb')}, headers=headers)
class WebsiteUser(HttpLocust):
host = 'http://localhost:5000'
task_set = HttpSession
min_wait = 1000
max_wait = 3000

当我运行我的蝗虫文件时,我得到了一个405错误的

理想情况下,我想给它至少3个或更多的xml文件,并启动三个/upload会话,然后上传3个不同的xml文件。我做错了什么?

这是一款已经通过硒功能测试的烧瓶应用程序os=窗口,因此斜杠

我认为files参数没有像你(或我(期望的那样工作。

我复制了你的代码,查看了Django应用程序收到的内容。数据在XML数据前面加了文件名。我更改了蝗虫任务,将数据加载到一个变量中,并将数据传递给请求:

class HttpSession(TaskSet):
@task
def post_img(self):                
headers = {'content-type': 'application/xml'}
with open('request_data.xml', 'r') as xml_fh:
xml_data = xml_fh.read()
self.client.request(
method='POST',
url='/upload',
data=xml_data,
headers=headers)

接受的答案很好,但文件的路径对我不起作用,所以最重要的是,我必须添加:

import os

然后

...
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'request_data.xml')
with open('request_data.xml', 'r') as xml_fh:
xml_data = xml_fh.read()
...

最新更新