负载测试工具
aioload的Python项目详细描述
要求
- python=3.6
安装
pip install aioload
# optional, highly recommended
pip install uvloop
用法
您需要在诸如config.ini这样的设置文件中指定您的请求
用法示例 可以重写aioload runner方法,here就是一个例子。然后您应该执行您生成的脚本,在本例中:python sample/dynamic_test.py conf.ini -v[http]sock_read=30sock_connect=3[test]# target url for testurl=http://localhost:8080/api/v1/something# methods: get, post, put, deletemethod=post## use body for send body in request# if body is json, indicate correct header in headers section# comment body line if you're doing a get requestbody='{"foo": "bar"}'# query params if needed, this will transform url# in something like http://localhost:8080/api/v1/something?token=something[params]token=something# headers if needed[headers]content-type=application/json
> aioload -h
usage: aioload [-h][-d][-v][-n NUMBER_OF_REQUESTS][-c CONCURRENCY][--plot]
testfile
positional arguments:
testfile Test file to be executed
optional arguments:
-h, --help show this help message and exit
-d, --debug trueif present
-v, --verbose trueif present
-n NUMBER_OF_REQUESTS, --number_of_requests NUMBER_OF_REQUESTS
number of requests to be done, default: 100
-c CONCURRENCY, --concurrency CONCURRENCY
concurrency (requests at the same time), default: 10
--plot draw charts if present
> aioload config.ini -n 3000 -c 100 --plot -v
2019-05-29 17:20:51,662 - __init__:135 - info - 8cf56ded860f41d8a86dab2aed05218f - starting script... -
2019-05-29 17:20:55,301 - __init__:102 - info - 8cf56ded860f41d8a86dab2aed05218f - done - min=14.54ms;max=212.21ms;mean=109.36ms; req/s=600.0; req/q_std=333.7;stdev=24.65; codes.200=3000;concurrency=100;requests=3000;
注
python有限制,如果您的应用程序像thiscrystal server那样快得疯狂,那么测试将受到aiosonic客户端速度的限制。