有可靠的方法来测试上传速度吗?

时间:2013-08-02 20:26:33

标签: javascript networking file-upload performance-testing bandwidth

我想在网页上添加一项功能,显示用户的上传速度(帮助他们预测文件上传需要多长时间)。

我很高兴找到a cool example of how to do this with javascript但是当我去检查其他(声誉良好的?)测试源的结果时,结果到处都是!

我对上传速度特别感兴趣。

在我的工作以太网上:

http://testmy.net - 15Mbps

http://bandwidth.com/tools/speedTest/ - 25Mbps

http://www.brandonchecketts.com/speedtest - 3.2Mbps

http://codecanyon.net/item/javascript-bandwidth-tester/full_screen_preview/531891 - 6Mbps

http://thinkingstiff.com/scripts/upload-speed - 1-2Mbps
(上面引用的脚本作者的现场演示)

最初我认为由于来自其他用户的流量等原因,我的网络出现了波动。但是我整个下午都在重新测试,每次测试都与其自身非常一致。比其他人多,但一般在5%以内。

所以我想知道:

  1. 测试这个不是直截了当的吗?
  2. 有没有可靠的工具来测试这个?或者我应该亲自手动完成吗?

2 个答案:

答案 0 :(得分:1)

这一切都取决于你真正想要测试的内容。您是要测试该用户的服务器上传速度,还是想为用户提供工具,速度最快的工具,让他看到它的一般上传速度?

从问题来看,我认为这是后者,我会说没有可靠的方法来做到这一点。您所能做的就是测试服务器和客户端之间的速度。你找到的工具可能会做得很好。但是这个速度取决于很多因素,并且它不是真正具有代表性的场景,您可以从中得出用户对互联网的访问速度。我不知道我是否解释了我想说的好,但我会给你一个例子:

假设用户位于欧洲,网络连接速度为50/10 mbps。您的服务器位于美国。当您测试上传速度时,流量必须经过许多路由器才能从欧盟到美国以及通过可能拥挤或遇到其他问题的网络,从而降低速度。因此,他在客户端和服务器之间获得的速度为3mbps。另一方面,如果他要测试他和一个靠近他的服务器之间的速度,比如在他的ISP网络内,他可能会获得承诺给他的10mbs的全速。这就是为什么您可以为同一个测试服务器获得一致的速度,但相互比较时会有所不同。

在测试带宽时,尽可能靠近客户端至关重要。这就是为什么许多ISP已经建立了自己的速度测试服务器,以便用户可以检查他们对Internet的访问速度。除此之外的所有内容都不是真正相关的,因为从服务器到服务器的速度会有所不同(有时是剧烈的),并且它不能被认为是有效的结果。

答案 1 :(得分:0)

W3C在某种程度上一直在努力,但this jsFiddle使用XMLHttpRequest来测试上传速度。据我所知,W3C没有设定黄金标准。