Python Locust нагрузочное тестирование, как загрузить и отправить файл XML - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь выяснить, сколько одновременно работающих пользователей могут загружать XML-файлы, используя Locust

файл саранчи

from locust import HttpLocust, TaskSet, task

class HttpSession(TaskSet):
        @task
        def post_img(self):
            headers = {'1': '1', '2': '2'}
            test_file = 'c:\\xmlfolder\a.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 и ускорить три сеанса загрузки / выгрузки, а затем загрузить 3 разных файла XML, что я делаю не так?

это колба, которая уже прошла функциональное тестирование с использованием селена os = windows и, следовательно, слэши

1 Ответ

0 голосов
/ 08 августа 2019

Я думаю, что аргумент 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...