Siege工具无法与HTTPS站点一起使用

时间:2013-08-23 09:48:37

标签: load-testing performance-testing stress-testing

我使用的是CentOS 6.4的Siege 3.0.3。

我的问题是:'Siege'如何支持HTTPS协议?

到目前为止,使用此工具进行HTTP站点测试是可以的。

但是,我在处理HTTPS网站时遇到了某些问题(所有这些都在下面描述)。

根据某人的建议,为了使HTTPS工作,我已经用openssl编译了围攻。

为此,我按照以下网站中提到的程序进行操作。 http://drewsymo.com/how-to/installing-siege-stress-tester-on-centos-6-3/

简而言之,我运行了以下命令,用于使用openssl编译siege。

cd /opt
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar -zxvf openssl-1.0.1e.tar.gz
cd siege-3.0.3
./configure -with-ssl=/opt/openssl-1.0.1e
make && make install

我在上述步骤中没有收到任何警告或错误。

但是,即便在此之后,我在使用此工具处理HTTPs站点时获得了以下结果。

ISSUE#1

每当我设置1000,1000等多次点击时,我都会收到以下错误。

"Segmentation fault (core dumped)"

请注意我已经运行了“ulimit -n 10000”命令来增加打开文件的数量。

但是,这没有帮助。

ISSUE#2

[root@localhost ~]# siege --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0" -c10 -r1 -t50S someHTTPSdomain.com
[error] CONFIG conflict: selected time and repetition based testing: No such file or directory
defaulting to time-based testing: 50 seconds
** SIEGE 3.0.3
** Preparing 10 concurrent users for battle.
The server is now under siege...
HTTP/1.1 302   0.09 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.11 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.08 secs:       0 bytes ==> GET  /
HTTP/1.1 302   3.09 secs:       0 bytes ==> GET  /
.....................
.....................
.....................

Then after many such hits exceeding the above defined 10 hits, I had to press Ctrl+C.

After that, it shows,

^C
Lifting the server siege...      done.

Transactions:                      0 hits
Availability:                   0.00 %
Elapsed time:                  18.70 secs
Data transferred:               0.00 MB
Response time:                  0.00 secs
Transaction rate:               0.00 trans/sec
Throughput:                     0.00 MB/sec
Concurrency:                    3.19
Successful transactions:          30
Failed transactions:              28
Longest transaction:           12.10
Shortest transaction:           0.07

FILE: /usr/local/var/siege.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive 'show-logfile' to false.
[root@localhost ~]#

为什么在HTTPS站点的情况下,事务总是显示0次点击?

即使在指定“-c10 -r1”之后,为什么滚动输出没有为HTTPS站点停止?

此外,为什么所有HTTP响应都显示为HTTPS网站的30倍?

为什么会出现这个错误“[错误] CONFIG冲突:选择的时间和基于重复的测试:没有这样的文件或目录默认为基于时间的测试:50秒”继续显示?

无论如何,如果我从上面的命令中删除-t50S我没有收到错误“[错误] CONFIG冲突:选择的时间和基于重复的测试:没有这样的文件或目录默认为基于时间的测试:50秒”

但是,它仍然将交易显示为0次点击。见下文。

[root@localhost ~]# siege --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0" -c10 -r1 someHTTPSdomain.com
** SIEGE 3.0.3
** Preparing 10 concurrent users for battle.
The server is now under siege...
HTTP/1.1 302   0.08 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.08 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.09 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.11 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.07 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.09 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.08 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.08 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.08 secs:       0 bytes ==> GET  /
HTTP/1.1 302   0.10 secs:       0 bytes ==> GET  /
done.

Transactions:                      0 hits
Availability:                   0.00 %
Elapsed time:                   2.14 secs
Data transferred:               0.00 MB
Response time:                  0.00 secs
Transaction rate:               0.00 trans/sec
Throughput:                     0.00 MB/sec
Concurrency:                    0.40
Successful transactions:          10
Failed transactions:              10
Longest transaction:            0.11
Shortest transaction:           0.07

FILE: /usr/local/var/siege.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive 'show-logfile' to false.
[root@localhost ~]#

ISSUE#3

另一件事,我注意到如果我在HTTPS URL前加上“https://”,如下所示,我得到这样的输出。

[root@localhost ~]# siege --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0" -c10 -r1 https://someHTTPSdomain.com
** SIEGE 3.0.3
** Preparing 10 concurrent users for battle.
The server is now under siege...
done.

Transactions:                      0 hits
Availability:                   0.00 %
Elapsed time:                   1.06 secs
Data transferred:               0.00 MB
Response time:                  0.00 secs
Transaction rate:               0.00 trans/sec
Throughput:                     0.00 MB/sec
Concurrency:                    0.00
Successful transactions:           0
Failed transactions:              10
Longest transaction:            0.00
Shortest transaction:           0.00

FILE: /usr/local/var/siege.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive 'show-logfile' to false.
[root@localhost ~]#

简单地说,没有HTTP或其他响应消息。

在处理HTTPS站点时,我对这些结果感到困惑。不清楚在发出命令时我是否做错了什么,或者是这个工具的一些错误或限制。

我想提一下,在上面的命令中,我在所有命令中使用了“ - user-agent = ”,使用了有效的Windows 8(使用Firefox浏览器)useragent。 我之所以这样做只是为了取代默认的Siege useragent,即“ JoeDog / 1.00 [en](X11; I; Siege 3.0.3)”,因为这个默认的Siege useragent可能会被许多网络服务器列入黑名单(不太确定)。

请有人指导。

提前致谢。

3 个答案:

答案 0 :(得分:0)

  1. 无法帮助解决这个问题

  2. 我猜如果你没有用“https://”启动URL,那么攻击不会知道使用SSL。 (https中的's'代表'安全')。所以我猜302s是转发https URL的服务器。如果你从“0点击”线看起来更远,它会说10次成功交易......那些可能是302回应。它还显示了10个失败的事务 - 因此无法使用SSL进行连接(假设转发只是使用SSL的同一URL)。

  3. 以下是10个失败的交易,就像之前一样。 /usr/local/var/siege.log包含什么?也许失败的消息在那里?

答案 1 :(得分:0)

正如另一篇帖子所说,你必须使用--with-ssl选项进行配置。此外,必须安装openssl开发标头。如果您没有SSL头文件./configure,make和make install将运行良好,他们将安装一个工作的siege二进制文件,但它将无法处理HTTPS。

答案 2 :(得分:-1)

我有完全相同的问题。我第一次做了

./configure --with-ssl=/usr/bin/openssl

在尝试使用https时编译正常但是coredumping,这是因为必须提供到ssl lib的路径

./configure --with-ssl=/usr/lib64/openssl

然后围攻能够处理ssl