1

我需要对我的 API 进行压力测试。我修改了该示例以发送 POST 而不是 HEAD,我还向我的请求添加了一些数据:

count = int(sys.argv[1])
url = "http://api.example.com/"
test_id = datetime.now().strftime("%H%M%S%f")
data = []
for i in range(count):
    req_data = {
        'test_id': test_id,
        'param1': i,
        'param2': 'aaa',
        'param3': 'bbb',
    }
    data.append(req_data)

start_time = time.time()
res = grequests.map(grequests.post(url, data=data[i]) for i in range(count))
sending_time = time.time() - start_time
print(sending_time)

之后性能下降到每秒 5 个请求!我也尝试了该问题的所有答案收到相同的结果。达到 1000 req/sec 是真的吗?

4

1 回答 1

0

是的,你可以这样做。

您可以通过创建多个进程和线程来实现这一点。

前任。使用子流程

在这里,我们创建了 10 个子进程,每个子进程将发出 100 个请求。因此,在一秒钟内,您将能够执行 1000 个请求。

import subprocess

for i in range(10):
    subprocess.Popen(["python","pathToPythonScript/stressTesting.py","100"])
于 2017-05-19T09:42:01.833 回答