您能否建议如何创建测试环境来模拟Web应用中的各种类型的带宽和流量?
或者也许是一个程序开源来对抗localhost吗?
我认为在编写网络应用程序时这是一个非常重要的主题,但它不是一个常见的主题,我可以想象创建这种环境的唯一方法是在本地网络中使用某种代理但在开始研究之前鱿鱼文档我想听听你的建议。
答案 0 :(得分:7)
如果您使用的是apache,可能需要查看apache ab
答案 1 :(得分:4)
有两种方法可以模拟网络流量来模拟网络链接:
(2)是一个更好的解决方案,如果您不想在客户端或服务器上安装软件(并可能影响性能),但需要更多的硬件摆弄。
您可能想要考虑的其他一些功能是可以模拟整形参数。大多数做延迟和丢包,有些还做抖动和带宽限制。某些解决方案可以选择性地过滤流量(例如,通过端口号,TCP或UDP等)。
以下列出了我发现的一些系统:
开源或免费软件
DummyNet是一个基于Unix的开源BSD专用设备。目前尚不清楚该软件是否得到积极维护
NistNet是一个基于Linux的开源专用设备系统。该软件多年来一直没有得到积极维护。
<强>商业强>
Apposite Technoligies出售用于模拟WAN链接的专用硬件解决方案,使用基于Web的GUI来配置设置和收集流量测量值
East Coast DataCom出售用于模拟路由器和调制解调器的硬件专用模拟器
Itrinegy提供专用设备解决方案,以及在客户端或服务器上运行的解决方案。
Network FX提供了几种专用设备产品,用于模拟客户端和网络之间的网络损伤。服务器
NetLimiter是一个客户端系统,允许对各个应用程序进行限制,并包含防火墙。
Shunra Software提供一系列产品,从高端企业WAN仿真和测试,到简单的客户端驻留仿真器。
答案 2 :(得分:3)
我能想到的最接近的是与来自Shunra的VEDekstop做类似的事情。
Simulating High Latency and Low Bandwidth in Testing of Database Applications
Shunra VE Desktop Standard是一款基于Windows的客户端软件解决方案,可模拟广域网链接,因此您可以直接在桌面上测试各种当前和潜在网络条件下的应用程序。
答案 3 :(得分:1)
我写了一段PHP脚本,后来使用CURL对我的服务器运行一系列页面请求,这代表了一个典型的使用场景。我输出了服务器响应每个请求所花费的时间。然后,我有另一个脚本,它会在一段时间内同时生成一堆这些测试用例脚本,并将结果关联到一个文件中,然后我可以在电子表格中查看该文件以查看平均时间。这样我就可以模拟我想要访问网站的用户数量。限制是您需要在不同的服务器上运行测试脚本到Web服务器,并且客户端计算机可能会变得过于负载,无法在某个点之后提供有意义的结果。我已经离开了工作,否则我会在这里粘贴脚本。
答案 4 :(得分:1)
如果您正在运行Linux机器作为您的服务器,Linux机箱作为您的客户端,或者能够在客户机和服务器之间放置(可能是VM)Linux路由器,则可以使用NetEm。
NetEm是Linux TC(流量控制)规程,可以延迟(即添加延迟)数据包离开主机。虽然设置聪明的规则(例如为某些流量增加延迟而不是其他流量)是很棘手的,但是很容易添加一个简单的“延迟所有离开接口50ms的类型”规则并提供一些配方。
通过在客户端和服务器之间插入Linux VM,您可以根据需要模拟延迟。你可以动态地打开和关闭它。 Linux有其他TC学科可以与NetEm结合来限制带宽(但是设置它的脚本可能有些复杂)。 NetEm也可以随机丢弃数据包。
我使用它并且它起作用:)
答案 5 :(得分:1)
正如其他人所说,Apache's ab(Apache附带,所以你可能已经拥有它)很好。
其他好的选择是:
我个人非常喜欢ab和JMeter。
答案 6 :(得分:1)
Microsoft提供的Web应用程序压力工具(WAST)就是您所需要的。
答案 7 :(得分:1)
多年来我一直没有使用它(不需要,不是因为我发现了其他的东西),但xat webspeed将是我要指向的第一件事
答案 8 :(得分:0)
我们使用Loadrunner在我们的应用程序中进行带宽和流量模拟。 Loadrunner可以在各种机器上启动代理,您可以模拟一台机器在拨号调制解调器v / s上运行另一台机器在DSL v / s另一台在有线互联网上运行。 我们还使用Loadrunner来模拟从10个用户运行到500个用户运行的各种流量条件。我们还可以在脚本中插入思考时间并模拟执行http请求的真实用户。最好的部分是它带有一个录音工作室,它将插入Internet Explorer,你可以录制整个场景/用例,就像将一页打到一个完整的50-60页脚本或更多。 / p>
答案 9 :(得分:0)
我发现这个小程序非常有效:sloppy
但不是专业解决方案,但它适用于简单的测试,我猜它使用java流和缓冲区来减慢连接速度。
答案 10 :(得分:0)
答案 11 :(得分:0)
如果您对通过浏览器执行测试感兴趣,还有a really great Firefox plug-in。
答案 12 :(得分:0)
不要忘记Wanulator(http://www.wanulator.de/)。 Wanulator的名称来自“WAN”和“模拟器。这几乎描述了软件的功能:它模拟不同的互联网条件,如延迟或丢包。此外,它模拟用户访问线路速度,例如调制解调器,ISDN或ADSL。 Wanulator目前打包为基于SLAX的Linux启动CD。这将为您提供完整的开箱即用体验。您可以在瞬间将任何PC转换为测试系统 - 只需启动Wanulator CD即可。该软件包已包含有用的客户端软件,如Web浏览器和网络嗅探器(Wireshark)。然而,如果PC有2个网络接口,系统可以作为服务器和客户端之间的中间系统运行 - 作为交换机 - 没有任何配置麻烦。