Siege压力测试工具学习

一、在linux环境下安装siege

sudo apt-get update && sudo apt-get upgrade  --show-upgraded(更新系统可更新可不更新)

sudo apt-get install 软件名

1、下载最新版本的siege

wget  http://download.joedog.org/siege/siege-latest.tar.gz

2、解压并进入siege路径

tar -zxvf siege-latest.tar.gz

cd siege-*/

如果没有安装编译工具,请先安装

sudo apt-get install build-essential

编译安装

./configure

make

sudo make install

创建配置文件

siege.config

修改配置文件

打开~/.sige/sige.conf文件,修改logfile选项

logfile=$(HOME)/sige.log

二、siege的常见参数

-h帮助

-c 指定并发数(是真并发)

-r 指定重复次数

-d 指定请求的延迟时间,注意每个请求间的随机延迟(模拟用户的思考时间,最多延迟一分钟,其他都是随机默认在一分钟之内)

-f 指定url列表,可以一次给多个地址加压(多用于翻页的Url测试)

-t 指定用例执行时间,比如,-t 10s-t 1M(H)之类(主要用于稳定性性测试,长时间进行加压,最容易发现内存泄露的问题)

-g 获取请求的headers信息并打印出来,debug专用

-H指定请求的headers信息

-l或者--log=[File]指定测试结果的路径

三、测试结果的分析

Transactions:                 600 hits

Availability:               90.91 %

Elapsed time:               14.19 secs

Data transferred:           34.26 MB

Response time:                0.28 secs

Transaction rate:           42.28 trans/sec

Throughput:                2.41 MB/sec

Concurrency:               11.63

Successful transactions:         600

Failed transactions:              60

Longest transaction:            7.05

Shortest transaction:            0.02

 

· Transactions: siege对服务器的访问次数。如果页面发生了redirect,那么siege会将跳转过的请求算成是另一个transaction

· Availability: socket连接的成功率。算法是,如果页面发生了timeout,4xx,5xx,那么该请求算是失败请求,成功率就等于(所有请求-失败请求) / 总请求数

· Elapsed time: 所有请求耗费的时间

· Data transferred: 所有请求传输的数据量,包括请求的headerscontent。所以这个数值可能比server端统计的数值要大一点

· Response time: 平均响应时间

· Transaction rate: Transactions / Elapsed time,事务率

· Throughput: 吞吐量,每秒平均传输的数据量

· Concurrency: 平均并发的请求数

· Successful transactions: 所有status code < 400transactions数量

· Failed transactions: 所有status code >= 400transactions数量

· Longest transaction: 最耗时的请求时间

· Shortest transaction: 最短单个请求时间


curl命令

curl -I http://www.baidu.com

curl -H"Accept-Encoding:gzip"  -I http://www.baidu.com

 curl -H"Accept-Encoding:gzip"   http://www.baidu.com

curl http://www.baidu.com

urls.txt里面新增内容

echo "http://www.baidu.com">>urls.txt

安装lrzsz,这样就能传输文件

sudo apt-get intall lrzsz

实战:

需求1: 使用siege对多个页面进行加压

作为项目的负责人,我希望各位同学可以对ur.tencent.com的下面几个页面进行加压,以便暴露系统的瓶颈。

http://ur.tencent.com/categories/7

http://ur.tencent.com/categories/7/?page=2

http://ur.tencent.com/categories/7/?page=3

我希望并发数是5,持续运行1分钟。

siege -c 5 -t 1M -f urls.txt

需求2: 保存siege日志

作为项目的负责人,我希望各位同学可以对ur.tencent.com的下面几个页面进行加压,以便暴露系统的瓶颈,并将结果记录到日志。

http://ur.tencent.com/categories/7

http://ur.tencent.com/categories/7/?page=2

http://ur.tencent.com/categories/7/?page=3

siege -c 5 -t 1M -f urls.txt --log=result.csv

csv文件可以直接用excel打开

可以使用命令sz result.csv将结果文件拷贝到本地

如果没有sz命令使用sudo apt-get intall lrzsz安装既可

需求3: 压测时候启用gzip压缩

gzip压缩就是指服务器在返回请求时候先将请求压缩一下,以减少response的体积,客户端收到response之后会自行解压,这是提升传输速度的一般做法。

我们仍然对上面的url进行加压,不过这次我们需要使用gzip

在请求头中加入Accept-Encoding:gzip就可以告诉服务器返回压缩后的response

siege -c 5 -t 1M -f urls.txt -H "Accept-Encoding:gzip" --log=result_gip.csv


siege的缺点只能在linux下运行

 


你可能感兴趣的:(性能测试工具)