Делать несколько запросов POST к URL-адресу одновременно в Python - PullRequest
2 голосов
/ 18 октября 2019

Я использую Django и Django Rest Framework. Внутри моего urls.py я определил следующую конечную точку /payments/. Он поддерживает POST запросов.

Справочная информация: Недавно у нас был пользователь, отправляющий несколько запросов на этот сервер одновременно, вызывая состояние гонки и, следовательно, крадя деньги.

Вопрос:

  1. Как мне написать тест для отправки 100-1000 запросов на эту конечную точку API URL?

Вот как я сейчас отправляю POST "тестовые" запросы в моем тестовом файле:

class PaymentViewTestCase(BaseTestCase):
    def setUp(self):
        super(PaymentViewTestCase, self).setUp()
        self.client = APIClient()
        self.client.force_authenticate(user=self.profile)

    def test_post_create_payment(self):
        amount = 1000
        request_data = {
            'amount': amount,
        }
        res = self.client.post(
            '/payment/',
            ujson.dumps(request_data),
            content_type='application/json',
            secure=True
        )

Однако я хотел бы вызвать этот POST запрос 1000, точно одновременно.

1 Ответ

0 голосов
/ 21 октября 2019
from concurrent.futures import ProcessPoolExecutor
import os

def task():
    print("Executing our Task on Process {}".format(os.getpid()))

def main():
    executor = ProcessPoolExecutor(max_workers=3)
    task1 = executor.submit(task)
    task2 = executor.submit(task)

if __name__ == '__main__':
    main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...