Web应用程序的带宽和流量模拟器?

时间:2020-03-06 14:57:04  来源:igfitidea点击:

我们能否建议如何创建一个测试环境来模拟Web应用程序中的各种类型的带宽和流量?

还是一个针对本地主机的开源程序?

我认为这是对Web应用程序进行编程时非常重要的主题,但这不是通常的话题,我可以想象创建这种环境的唯一方法是在局域网中使用某种代理,但是在开始研究鱿鱼文档之前我想听听你的建议。

解决方案

我能想到的最接近的就是与Shunra的VEDekstop做类似的事情。

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

Shunra VE Desktop Standard是基于Windows的客户端软件解决方案,可模拟广域网链接,以便我们可以直接从桌面在各种当前和潜在的网络条件下测试应用程序。

如果我们使用的是Apache,则可能需要看看apache ab

我不久前写了一个php脚本,它使用CURL对我的服务器运行一系列页面请求,这代表了典型的使用场景。我让它输出了服务器响应每个请求所花费的时间。然后,我有了另一个脚本,该脚本在持续的时间内同时生成了许多这些测试用例脚本,并将结果关联到一个文件中,然后可以在电子表格中查看该文件以查看平均时间。这样,我可以模拟访问所需站点的用户数量。局限性在于我们需要在与Web服务器不同的服务器上运行测试脚本,并且客户端计算机可能变得负载太大,无法在特定点上提供有意义的结果。从那以后,我离开了工作,否则我会将脚本粘贴到这里。

我们使用Loadrunner在我们的应用程序中进行带宽和流量模拟。 Loadrunner可以在多台计算机上启动代理,并且我们可以模拟一台计算机,使其在拨号调制解调器上运行,而另一台计算机在DSL上运行,而在电缆网上则是另一台。
我们还使用Loadrunner来模拟从10个用户运行到500个用户运行的各种流量状况。我们还可以在脚本中插入思考时间,并模拟执行http请求的真实用户。最好的部分是它带有一个录音室,它将与Internet Explorer插入,我们可以记录整个场景/用例,就像将一页打到完整的50-60页脚本或者更多上一样简单。

我发现这个很小的Java程序效果很好:草率

仍然不是一种专业的解决方案,但它适用于简单的测试,我想它使用Java流和缓冲区来减慢连接速度。

你看过宗宗了吗它是查看网站是否会在受到攻击时扩展的强大工具,我的意思是非常受欢迎。我们将其用于我们的Web前端以及我们的内部系统。

如果我们正在运行Linux box作为服务器,Linux box作为客户端,或者具有在客户端和服务器之间放置(也许是VM)Linux路由器的功能,则可以使用NetEm。

NetEm是Linux TC(流量控制)学科,可以延迟(即增加延迟)数据包离开主机。尽管设置巧妙的规则比较棘手(例如,增加某些流量的延迟,而不是其他流量),但添加一个简单的"将离开接口的所有内容延迟50ms"类型的规则很容易,并且提供了一些方法。

通过在客户端和服务器之间粘贴Linux VM,我们可以模拟任意数量的延迟。我们可以动态地打开和关闭它。 Linux还有其他TC规范,可以与NetEm结合使用以限制带宽(但是设置该脚本的脚本可能有些复杂)。 NetEm还可以随机丢弃数据包。

我用它,它可以治疗:)

如果我们有兴趣通过浏览器执行测试,那么还有一个非常不错的Firefox插件。

有两种方法可以调整网络流量以模拟网络链接:

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

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

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

这是我发现的一些系统的列表:

开源或者免费软件

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

NistNet是用于专用设备的基于Linux的开源系统。几年来一直没有积极维护该软件。

商业的

Apposite Technoligies出售用于仿真WAN链接的专用硬件解决方案,以及用于配置设置和收集流量测量值的基于Web的GUI

东海岸数据通信公司出售专用于硬件的仿真器,用于仿真路由器和调制解调器

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

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

NetLimiter是一个客户端系统,允许对单个应用程序进行调节,并包括防火墙。

Shunra Software提供了一系列产品,从高端企业WAN仿真和测试到简单的客户端仿真器。

正如其他人所提到的,Apache的ab(Apache附带的,所以我们可能已经拥有了)是不错的选择。

其他好的选择是:

  • 惠普的LoadRunner Apache
  • 雅加达的JMeter
  • 宗(如果我们想继续使用erlang)

我个人最喜欢AB和JMeter。

我们需要Microsoft的Web应用程序压力工具(WAST)。

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

我已经好多年没有使用它了(不需要,不是因为我找到了其他东西),但是xat webspeed是我要指出的第一件事