我需要为我的API进行压力测试。 我修改that example以发送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个请求! 此外,我尝试了that question的所有答案,并收到了相同的结果。是真的达到1000 req / sec?
答案 0 :(得分:0)
是的,你可以这样做。
您可以通过创建多个进程和线程来实现此目的。
实施例。使用子流程
在这里,我们正在制作10个子流程,每个子流程将生成100个请求。所以在一秒钟内,您将能够执行1000个请求。
import subprocess
for i in range(10):
subprocess.Popen(["python","pathToPythonScript/stressTesting.py","100"])