带宽和stream量模拟器的networking应用程序?

你能build议如何创build一个testing环境来模拟networking应用程序中的各种types的带宽和stream量?

或者也许一个程序开放源码至极本地主机?

我认为在编写web应用程序时这是一个非常重要的主题,但这不是一个常见的主题,我能想象创build这种环境的唯一方法是在本地networking中使用一些代理,但在开始查看squid文档之前我想听听你的build议。

如果你使用apache,你可能想看看apache ab

有两种方法来形成网络流量来模拟网络链接:

  1. 在位于网络堆栈某处的客户端或服务器上运行一些软件,并在应用程序和网络接口之间设置流量
  2. 在具有2个网络接口的专用计算机上运行流量整形软件,通过这些网络接口进行流量路由

(2)是一个更好的解决方案,如果你不想在客户端或服务器上安装软件(并可能影响性能),但需要更多的硬件摆弄。

您可能想要考虑的一些其他功能是可以模拟整形参数。 大多数做延迟和丢包,有些做抖动和带宽限制。 一些解决方案可以选择性地过滤流量(例如通过端口号,TCP或UDP等)。

以下是我找到的一些系统的列表:

开源或免费软件

DummyNet是一个基于Unix的开源专用设备。 目前尚不清楚软件是否正在积极维护

NistNet是专用设备的开源Linux系统。 该软件还没有积极维护多年。

广告

Apposite Technoligies销售用于模拟WAN链路的专用硬件解决方案,配有基于Web的GUI,用于配置设置和收集流量测量

东海岸DataCom出售硬件专用模拟器来模拟路由器和调制解调器

Itrinegy提供专用设备解决方案,以及在客户端或服务器上运行的解决方案。

网络FX提供了几种专用设备产品,用于模拟客户端和服务器之间的网络损伤

NetLimiter是一个客户端系统,允许限制各个应用程序,并包含防火墙。

Shunra Software提供一系列产品,从高端企业广域网模拟和测试到简单的客户端模拟器。

我能想到的最接近的是与Shunra的VEDekstop类似的东西。

在数据库应用测试中模拟高延迟和低带宽

Shunra VE桌面标准版是一款基于Windows的客户端软件解决方案,可模拟广域网链接,以便您可以在各种当前和潜在的网络条件下(直接从您的台式机)测试应用程序。

我写了一个php脚本,它使用CURL来运行一系列的页面请求对我的服务器,这代表了一个典型的使用场景。 我已经输出了服务器响应每个请求所花费的时间。 然后,我有另外一个脚本,在一段时间内同时生成一堆这些测试用例脚本,并将结果关联到一个文件中,然后我可以在电子表格中查看平均时间。 这样我可以模拟用户点击我想要的网站的数量。 限制是您需要在不同的服务器上运行测试脚本到Web服务器,并且客户端计算机可能会变得过载,从而无法提供有意义的结果。 我已经离开了工作,否则我会在这里粘贴脚本。

如果你正在运行一个Linux机器作为你的服务器,Linux机器作为你的客户机,或者有能力(可能是一个虚拟机)在你的客户机和服务器之间放置一个Linux路由器,你可以使用NetEm。

NetEm是一个Linux TC(流量控制)纪律,可以延迟(即增加延迟)数据包离开主机。 虽然设置巧妙的规则是非常棘手的(例如添加一些流量的延迟,而不是其他的),但是很容易添加一个简单的“延迟一切离开接口50ms”的类型规则,并提供一些配方。

通过在客户端和服务器之间粘贴一个Linux虚拟机,您可以模拟尽可能多的延迟。 你可以动态地打开和关闭它。 Linux有其他的TC规则可以和NetEm结合来限制带宽(但是脚本设置起来可能有点复杂)。 NetEm也可以随机丢弃数据包。

我使用它,它的工作原理:)

来自Microsoft的Web应用程序压力工具(WAST)是您所需要的。

http://www.microsoft.com/downloads/details.aspx?familyid=e2c0585a-062a-439e-a67d-75a89aa36495&displaylang=en

多年以来我一直没有使用它(缺乏需要,不是因为我发现了其他东西),但是xspe webspeed将是我首先要指向的

正如其他人所提到的, Apache的ab (带有Apache,所以你可能已经有了)很好。

其他不错的选择是:

  • 惠普的LoadRunner Apache
  • 雅加达的JMeter
  • Tsung (如果你想让你的erlang)

我个人喜欢ab和JMeter最好。

我们使用Loadrunner在我们的应用程序中进行带宽和流量模拟。 Loadrunner可以在各种机器上启动代理,并且可以模拟一台机器在有线互联网上的另一台DSL v / s上运行在拨号调制解调器上。 我们还使用Loadrunner来模拟从10个用户运行到500个用户运行的各种交通状况。 我们还可以在脚本中插入思考时间并模拟执行http请求的真实用户。 最好的部分是,它配备了一个录音工作室,可以连接到互联网浏览器,您可以录制整个场景/用例,就像打一页纸一样简单,甚至更多。

我发现这个小的Java程序,很好用: 马虎

但不是一个proffesional解决方案,但它适用于简单的测试,我想它使用Java流和缓冲区来减慢连接。

你看过宗? 如果您的网站在攻击事件发生时能够扩展,那么这是一个很好的工具,我的意思是大量的流行。 我们将它用于我们的网页前端,以及我们的内部系统。

如果您有兴趣从浏览器中执行测试,那么还有一个非常棒的Firefox插件 。

不要忘了Wanulator(http://www.wanulator.de/)。 Wanulator这个名字来源于“WAN”和“simulator”,它很好地描述了这个软件的功能:它模拟不同的互联网条件,比如延迟或者丢包,还可以模拟用户接入线路的速度,例如modem,ISDN或者ADSL。打包成一个基于SLAX的Linux启动光盘,这将给你一个完整的开箱即用的体验,只要启动Wanulator CD就可以把任何一台PC变成一个测试系统 – 这个软件包已经包含了有用的客户端软件例如网络浏览器和网络嗅探器(Wireshark),但是如果PC有2个网络接口,系统可以作为服务器和客户端之间的中间系统(作为交换机)运行,没有任何配置的麻烦。