1


对我们的新 Web 应用程序运行简单和基本的加载测试很有趣,不太复杂 - 不需要在网站中登录或导航 - 只需使用许多对预定义 URL 列表的并发获取请求来轰炸我们的 Web。

我在看apache absiege,它看起来真的很棒 - 只需几分钟即可设置,我的网站收到了很多 get 请求,这些平台的问题是当我定义一个“GET”请求时页面它只是点击这个页面并且从不请求它的内部资源(图像、css 和 js),当然我可以将这些资源添加到 url 列表中,但它不会给我一个真正的结果(#rpm 和所有)。

有什么建议我能做什么?
我可以用 apache ab 或 siege 做我想做的事吗?
你知道让我这样做的类似工具吗?我查看了 JMeter,它看起来有点矫枉过正。

谢谢。

4

3 回答 3

0

I suggest that you try a tool that allows you to record a session in your browser. These tools will generally capture all the resources on each page and include them in the test. A search for "load testing software" will reveal many options. I'll put in a plug for the free version of our product (Load Tester LITE), which should work well for the scenarios you have described and will allow you to test with an unlimited number of users.

于 2012-09-26T13:18:02.850 回答
0

最终使用httperf
尽管它有许多 bug 会通过大量分段错误来破坏进程,但它具有很好的功能,可以让您使用会话 (--wsesslog)。

另一种选择是使用 siege 模拟一个客户端并并行运行几个客户端:
假设您有一个 url.txt 包含您要测试的所有 url 和一个 resources.txt 文件,其中包含每个文件的通用资源import (images, css and js), 所以你可以使用这个脚本来模拟并行的客户端数量:

#run X users in parallel:
i=1; 
for line in $(head -|NUMBER OF CLIENTS| urls.txt); do 
    echo $line > client$i;
    cat resources.txt >> client$i;
    let "i += 1";
done;

for f in $(ls client*); do 
    siege -c |NUMBER OF CALLS| -r 100 -f $f -b &
done;
于 2012-09-30T08:40:16.530 回答
0

首先,答案是:Siege FAQ 为您提供两种选择;两者都是直截了当的。

在您的评论中,您写道“Siege 将每个 URL 分开处理”——这不仅仅是 Siege,您的浏览器就是这样工作的。它首先下载一个 HTML 文件,在该 HTML 文件中,它将看到指向其他资产(图像、javascript 文件等)的链接并下载这些文件。通过使用 sproxy,您可以重新创建查看浏览器正在执行的操作,并将其保存为 Siege 的说明。

其次,一个建议——将Bad Boy与 JMeter 结合使用;这样,您可以在您的网站上单击并捕获下载,然后使用 JMeter 重新播放。

第三,请注意 - 通过下载所有图像、链接等,您实际上是在测试您的网络服务器(Apache、IIS 等)的性能,而不是您的网络应用程序的性能。即使是最顽固的愤世嫉俗者也可能接受您的网络服务器的性能已经被其他人建立,并且几乎肯定不会成为问题。你真的要测试这个吗?

于 2012-09-26T13:26:42.950 回答