小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
有时候在测试或者开发调试的时候,需要对自己的接口性能有所了解;
对于一款性能测试工具的选择,比较随意但是一定要轻巧,所以推荐Siege
Siege安装步骤
$ wget <http://download.joedog.org/siege/siege-latest.tar.gz>
$ tar zxf siege-latest.tar.gz
$ cd siege-4.0.2/
$ ./configure
$ sudo make
$ sudo make install
复制代码
查看是否安装成功
查看siege安装路径:
$ which siege
/usr/local/bin/siege
查看siege版本:
$ siege -V
SIEGE 4.0.2
复制代码
siege命令举例
10个并发某接口url&method¶meters发送请求10分钟,开启调试模式,无间隔时间,XX日志写入XX目录
siege --debug -c10 -t10M '<http://mapp.xxxxx.com/api/product/list> POST systemVersion=6.0&deviceId=864361034921867&deviceToken=9cab8a947832db553951ea716c417eab&source=android&appVersion=3.0.3&t=1495179270635&pageIndex=1&pageSize=20®Channel=app&resolution=1080*1812&deviceModel=EVA-AL00&density=3.0& ' >>/data/siegelogs/siege2017051917.log
10个并发url&method¶meters发送请求20次,开启调试模式,无间隔时间,XX日志写入XX目录
siege -c10 -r20 '<http://mapp.xxxxx.com/api/product/list> POST systemVersion=6.0&deviceId=864361034921867&deviceToken=9cab8a947832db553951ea716c417eab&source=android&appVersion=3.0.3&t=1495179270635&pageIndex=1&pageSize=20®Channel=app&resolution=1080*1812&deviceModel=EVA-AL00&density=3.0& ' >>/data/siegelogs/siege201705191750.log
模拟同一用户重复提交10次购买请求
siege '接口地址 POST 具体入参' -r 1 -c 10
siege 'https://mapp.xiaoniuapp.com/api/product/buyProduct.do POST parameters' -r 1 -c 10
模拟不同的用户并发同一个接口请求,迭代次数=1
首先创建文件test_urls,将请求信息写入test_urls文件
请求 URL¶meters1 (缺陷,需要参数化登录用户名)
URL¶meters2
URL¶meters3
复制代码
具体命令如下 :
siege --debug -r 2 -c 1 -b -f /data/siegefiles/test_urls -b >>/data/siegelogs/siege201705221136.log
同一用户并发提交多个接口
准备接口测试文件-bingfa,譬如同一个用户在购买活期宝的同时也在赎回活期宝,测试是否有数据错乱的情况
- 具体命令如下
siege --debug -r 1 -c 2 -b -f /data/siegefiles/bingfa -b >>/data/siegelogs/siege201705221136.log
总结
从安装到使用,那最后的结果呢?不能是一味的只会使用,更要看懂其中的关键,譬如结果分析。
是不是对输出的结果有很多问号?作者也帮你整理好了。
压力测试的结果包括如下内容:
Transactions: 访问次数
Availability: 成功次数
Elapsed time: 测试用时
Data transferred: 测试传输数据量
Response time: 平均响应时间
Transaction rate:每秒事务处理量
Throughput: 吞吐率
Concurrency: 并发用户数
Successful transactions: 成功传输次数
HTTP OK received:接收成功响应次数
Failed transactions: 失败传输次数
Longest transaction: 最长响应时间
Shortest transaction: 最短响应时间
复制代码




近期评论