2010-04-01 63 views
9

如何严格测试网站的安全性和速度?如何严格测试网站?

这是什么方式和工具?

我们可以模仿数百名访问该站点的虚拟用户来查看其负载处理吗?

+1

这可能被称为压力测试... – Sarfraz 2010-04-01 08:15:35

+0

看看这个然后.. http://jakarta.apache.org/jmeter/ – ant 2010-04-01 08:22:26

+0

*(相关)* http://stackoverflow.com/questions/7492/如何做你的压力测试的网络应用 – Gordon 2010-04-01 08:25:30

回答

5

如果这只是应该是一个压力测试,尝试http://freshmeat.net/projects/siege/

围城是一个回归测试和基准测试工具。它可以用一个用户定义数量的模拟用户来压力测试单个URL,或者可以将很多URL读入内存并同时强调它们。该程序报告记录的点击总数,传输的字节数,响应时间,并发性和返回状态。 Siege支持HTTP/1.0和1.1协议,GET和POST指令,cookie,事务日志记录和基本身份验证。它的功能可以根据每个用户进行配置。

http://httpd.apache.org/docs/1.3/programs/ab.html

AB为基准Apache的 超文本传输​​协议(HTTP)服务器的性能的工具。它通过 这样做,可以指示您的Apache安装每秒可以处理多少个请求 。

要测试您的PHP代码,请使用PHPUnit。要测试你的前端,请使用Selenium

对于安全测试,我强烈建议购买审计并将其留给专门的专家。超出您的应用程序代码的攻击媒介太多了。

+0

@戈登:+1,谢谢你很高兴知道这样的工具,谢谢 – Sarfraz 2010-04-01 08:16:41

+1

而不是Selenium,我倾向于喜欢Celerity。它确实需要你知道如何编写Ruby,但一旦你这样做了,它就是一个很好的前端测试框架。 – 2010-04-01 09:56:42

+0

新的围攻网址 - https://www.joedog.org/siege-home/ – 2018-02-16 14:10:34

1

你可以试试谷歌的Skipfish。这是一个安全扫描器,但它会偶然地产生相当多的请求到您的网站。

1

获取Slashdot的的头版

+0

请你详细说明一下吗? – Sarfraz 2010-04-01 08:17:21

+0

这就是所谓的slashdot效果 – ariefbayu 2010-04-01 08:21:45

+0

被称为slashdotted的网站已知会在所有流量下崩溃,因为大量的极客们在服务器大门上敲门,急于获取内容。但要小心,你可以认真勾选你的托管服务提供商;) – 2010-04-01 08:23:23

6

上,我建议你阅读这篇文章,它是非常有用的我检查我每建一个时间我的动态网站。

https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site#answer-305381

编辑:

http://jmeter.apache.org/

的Apache JMeter是开源软件,100%纯Java桌面应用而设计的负载测试功能行为和衡量绩效。 It was originally designed for testing Web Applications but has since expanded to other test functions.

1

http://seleniumhq.org/是寻找的技术。从他们的网站

行情:

硒是一种强大的工具集是 支持基于Web的应用程序测试 自动化的快速发展。 Selenium提供了一套丰富的测试功能 专门针对 来测试web 应用程序的需求。这些操作非常灵活,允许多个选项 用于查找UI元素,并比较 预期的测试结果与实际的 应用程序行为。

Selenium的主要功能之一是 支持在多个浏览器平台上执行一个测试 。

最重要的部分大概是: 硒-RC(遥控)

硒-RC允许测试自动化 开发人员使用的编程 语言最大的灵活性和 可扩展性在开发测试 逻辑。例如,如果被测 应用程序返回 结果集,如果自动测试 程序需要运行在结果集中的每个 元素测试, 编程语言的迭代 支持可用于通过 的迭代结果集,调用Selenium 命令在每个项目上运行测试。

硒-RC提供了一个API (应用编程接口) 和图书馆为它的每个支持 语言:HTML,Java和C#,Perl和PHP, Python和Ruby。这种使用 Selenium-RC与高级 编程语言开发测试 案例的能力还允许将自动化 测试与 项目的自动构建环境集成。

2

您可以使用WEBLOAD。它的负载测试工具.. 转到www.webload.com

3

另外,我会提到Tsung

从它们的引入雷丁:

崇是一个开源多协议 分布式负载测试工具

它可用于强调HTTP,WebDAV的, SOAP时,PostgreSQL,MySQL和LDAP和 Jabber/XMPP服务器。 Tsung(原名为 称为IDX海啸)是一款免费的 软件,根据GPLv2 许可证发布。

崇的目的是模拟 用户,以测试可扩展性 和基于IP的性能 客户端/服务器应用程序。你可以用 来做你的服务器的负载和压力测试 。许多协议已经实现并测试了 ,并且它可以很容易地扩展。最近添加了WebDAV,LDAP 和MySQL支持 (实验性)。

它可以在几个 客户机进行分配,并能够 模拟成千上万的 虚拟用户的同时(甚至 百万,如果你有足够的硬件 ...)。

聪在二郎发达,由爱立信 为构建健壮的容错 分布式应用做出了 开源语言。

崇被处理,其中

4

我想只是扩大了一些建议,因为我做了很多有益的。

围攻是一个伟大的健康检查,它有一个真正的低门槛。它是Ubuntu和其他标准软件包,只需要命令行参数即可运行。所以你可以像你想要的那样拼命地(或者敢于)看到你的网站突破点。我的经验是,很少有网络服务器以线性方式降级。随着负载的增加,它们会慢一点,然后慢一点,然后BAM的加载时间会跳到20秒。了解这种情况何时发生,可以让您了解需要担心的事情以及是否需要完成。如果你没有碰到500多个并发用户,那么你就有一些余地。

但请注意,围攻实际上更多地是测试您的Web服务器而不是您的Web站点。

正如前面提到的相同的海报硒是一个伟大的工具,但是,希望投入一些时间。实际上,您可以使用Selenium IDE弹出一些测试,然后在Selenium RC的浏览器中将它们作为HTTP套件运行,而无需进入脚本(尽管您希望这样做)。这种方法的优点和缺点在于,这为真正的浏览器提供了动力,所以在一台机器上运行测试不会让您获得真实世界的结果,因为您的机器无法跟上。您需要运行并设置SRC和Selenium Grid可能是一项艰巨的任务,但如果这是您将一次又一次执行的操作,那么完全值得,尤其是如果您有一点VM知识。

创建Selenium的人现在提供了一个基于商业云的RC,可运行所有标准浏览器并捕获会话视频(您可以关闭性能测试)。这是在http://saucelabs.com和负载测试,或免费快速测试在所有浏览器,这是伟大的。 (我仍然在本地运行功能测试)。再次,它的成本,但它是合理的。

我说得更清楚一些,因为你的第一点是“有力地”测试你的网站,我假设这意味着测试所有功能,而不仅仅是测试大量的能量。

除了编写完整的测试(这是您通常进入脚本的地方,因为很多事情可以重复使用,例如填写表单),我不知道有什么灵丹妙药。

最后一件事是,在你启动之前,如果你没有一个可用性程序,让一些非程序员/网络人员使用它并观察它们并要求它们做各种“任务”(签名没有“点击”的)这听起来像是可用性测试,但对于这一点来说已经太迟了,但你会惊奇地发现,那些不认为你喜欢的人会在你的代码中发现错误。这应该有希望开创未测试领域的新视野。

我还没有找到网络应用程序的“覆盖”工具。如果有的话,但我很乐意听到它。