简单易用的Web压测工具——Siege

        今天突然想测一下一个Web应用程序的性能,本来想用WebBench,但发现其并不支持POST方法的压测,故而只能放弃。经过一番搜索,发现另一个和WebBench一样简单易用的压测工具——Siege。
        软件主页是https://www.joedog.org/,可以自己下载源码编译安装,也可以用Linux系统上的包管理工具安装。
        下表是部分参数的中文描述1

Parameter Description
-C或-config 在屏幕上打印显示出当前的配置,配置是包括在他的配置文$HOME/.siegerc中,可以编辑里面的参数,这样每次siege 都会按照它运行.
-v 输出版本信息和siege一些命令
-c n或-concurrent=n 模拟n个用户同时并发访问;n不要设置的太大,因为越大,siege消耗的资源就更多
-i 或 -internet 随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性)
-d n 或 -delay=n hit每个url之间访问的延迟,在0-n之间;一般该参数不会>10
-b 或 --benchmark BENCHMARK模式,请求之间没有延迟
-r n 或 -reps=n 重复运行测试n次,不能与-t同时设置
-t n 或 -time=n 持续运行siege n秒,如10S(秒),10M(分钟),10H(小时)
-l 运行结束,将统计数据保存到日志文件中siege.log,可通过siege -C查看siege.log的具体位置,也可在配置文件中自定义
-R SIEGERC 或 -rc=SIEGERC 指定用特定的siege配置文件来运行,默认为$HOME/.siegerc
-f file 或 -file=FILE 指定urls文件来运行
-u URL 或 -url=URL 测试指定的url

        报告的测试数据如下2

名称 说明
Transactions: 100 hits (完成100个请求)
Availability: 100.00 %(100%的成功率)
Elapsed time: 10.97 secs(总共使用时间)
Data transferred: 0.54 MB(总共传输数据)
Response time: 0.17 secs(响应时间)
Transaction rate: 9.12 trans/sec(平均每秒完成的处理)
Throughput: 0.05 MB/sec(平均每秒传送的数据)
Concurrency: 1.58(实际最高并发数)
Successful transactions: 100(成功处理次数)
Failed transactions: 0(失败处理次数)
Longest transaction: 3.09(每次传输花费的最长时间)
Shortest transaction: 0.03(每次传输花费的最短时间)

        附上实际测试使用的命令:34

  • siege -c 100 -t 50S "http://192.168.50.87:8080/json POST < ./query.json"(注意json文件中的内容不能是普通的字符串)
  • siege -c 100 -t 50S "http://192.168.50.87:8080/json POST {\"key\": \"value\"}"(注意对双引号进行转义)
  • siege -c 100 -t 50S "http://192.168.50.87:8080/json POST p1=v1&p2=v2"

  1. 《压测工具siege的简单使用》https://www.jianshu.com/p/516463003fdc ↩︎

  2. 《siege压测工具的安装与使用》http://blog.51cto.com/mengphilip/1725787 ↩︎

  3. 《如何使用web api测试工具siege和ab的post方法来发送json数据》https://blog.csdn.net/xuriwuyun/article/details/12711927 ↩︎

  4. 《Web性能压力测试工具——Siege详解》https://blog.csdn.net/winsonyuan/article/details/52786368 ↩︎

你可能感兴趣的:(辅助开发,基本常识)