使用Python中的curl对网站进行压力测试

时间:2017-02-18 17:46:39

标签: python curl stress-testing

我有一个在端口5000上运行的Flask应用程序,它支持7个支持GET请求的不同端点。所以我可以做一个

curl http://localhost:5000/get_species_interactions?q=tiger

它在经过一些计算之后返回一个页面。还有6个其他这样的端点,每个端点在后端具有不同的计算程度。它适用于一个用户,但我想获得它在负载下的性能指标。我试图通过模拟大量请求来强调测试这个,我正在考虑使用python脚本。我想到的粗略算法如下:

 while (num_tests < 1000):
   e = get_random_end_point_to_test() # pick one out of 7 end points
   d = get_random_data_for_get(e) # pick relevant random data to send in curl command
   resp = curl(e/q?d)
   num_tests++

我的问题是 - 这种一般方法是否正确?它是否模拟了大量的并发用户?我计划存储执行每个请求和计算统计数据所花费的时间。否则是否有一个免费的工具我可以用来在Mac OS上进行这种压力测试?我看到了一个名为siege的工具,但它很难在Mac上使用。

2 个答案:

答案 0 :(得分:1)

我会建议使用Apache jmeter。该工具具有Stresstests所需的一切,并且在线记录良好。

您需要安装Java

答案 1 :(得分:1)

不,您需要并行化您的请求。 multi可以使用{{1}}界面执行此操作。

检查一下。 Pythonic interface to libcurl/pycurl