4

我需要测试一个需要文件上传的网络表单。每次上传的文件大小约为 10 MB。我想测试服务器是否可以同时处理 100 多个上传,并且仍然对站点的其余部分保持响应。

从我们办公室重复提交的表格将受到我们当地 DSL 线路的限制。服务器在异地,带宽更高。

基于经验的答案会很棒,但欢迎任何建议。

4

3 回答 3

9

使用与 Apache 捆绑在一起的ab (ApacheBench)命令行工具(我刚刚发现了这个很棒的小工具)。与 cURL 或 wget 不同,ApacheBench 设计用于在 Web 服务器(任何类型的 Web 服务器!)上执行压力测试。它也产生大量统计数据。以下命令将发送包含文件的 HTTP POST 请求test.jpg100http://localhost/ 次,最多 4 个并发请求。

ab -n 100 -c 4 -p test.jpg http://localhost/

它产生如下输出:

Server Software:        
Server Hostname:        localhost
Server Port:            80

Document Path:          /
Document Length:        0 bytes

Concurrency Level:      4
Time taken for tests:   0.78125 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Non-2xx responses:      100
Total transferred:      2600 bytes
HTML transferred:       0 bytes
Requests per second:    1280.00 [#/sec] (mean)
Time per request:       3.125 [ms] (mean)
Time per request:       0.781 [ms] (mean, across all concurrent requests)
Transfer rate:          25.60 [Kbytes/sec] received

Connection Times (ms)
          min  mean[+/-sd] median   max
Connect:        0    0   2.6      0      15
Processing:     0    2   5.5      0      15
Waiting:        0    1   4.8      0      15
Total:          0    2   6.0      0      15

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%     15
  95%     15
  98%     15
  99%     15
 100%     15 (longest request)
于 2008-11-27T14:59:38.473 回答
0

我可能会指导您使用 cURL 并仅提交随机内容(例如,读取 10MB/dev/urandom并将其编码为 base32),通过 POST 请求并手动将主体制作为文件上传(这不是火箭科学)。

将该脚本分叉 100 次,可能在几台服务器上。只要确保系统管理员不认为你在做 DDoS 或其他什么 :)

不幸的是,这个答案仍然有点模糊,但希望它可以帮助你,让你走上正确的道路。

根据 Liam 的评论继续:
如果接收上传的服务器与连接到它的客户端不在同一个 LAN 中,最好尽可能地获取远程节点进行压力测试,如果只是为了模拟尽可能真实的行为。但是,如果您无法访问本地 LAN 之外的计算机,则本地 LAN 总比没有好。

在同一硬件内部进行压力测试不是一个好主意,因为您会在服务器上进行双重加载:找出随机数据,打包它,通过 TCP/IP 堆栈发送它(尽管可能不是通过以太网),以及只有这样,服务器才能发挥它的魔力。如果发送部分是外包的,那么接收端的性能会加倍(使用任意大小的盐)。

于 2008-10-23T09:09:15.030 回答
0

使用您最喜欢的语言自动化Selenium RC 。启动 100 个 Selenium 线程,每个线程在输入中输入文件路径并单击提交。

您可以生成 100 个按顺序命名的文件,以便轻松循环它们,或者只是一遍又一遍地使用同一个文件

于 2008-10-23T09:12:00.267 回答