在 Python 中同时向一个 URL 发出多个 POST 请求



我正在使用Django和Django Rest Framework。在我的urls.py中,我定义了以下端点/payments/。它支持POST请求。

背景信息:不久前,我们有一个用户向该服务器发送多个请求,同时触发竞争条件,从而窃取资金。

问题:

  1. 如何编写测试以向此 URL API 终结点发送 100-1000 个请求?

这是我目前在测试文件中发送 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。

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()

相关内容

  • 没有找到相关文章

最新更新