谷歌Chrome 38 在devtools中引入了新的"设备模式和移动仿真"功能.除了选择用于仿真的设备之外,还可以模拟不同的网络条件:
在不同的网络条件下优化网站的性能是开发移动受众的关键方面.
设备模式的网络调节允许您在各种网络连接上测试您的站点,包括Edge,3G甚至离线.从预设下拉列表中选择一个连接以应用网络限制和延迟操作.
例如,我们可以将它设置为好日子 - GPRS 50 Kbps:
现在我们有一个很好的用例 - 我们有一个用于网络速度测试的内部应用程序.这种新的仿真功能对手动测试非常有用.但是,我们希望自动化它.
问题是:
是否可以通过指定网络条件下的硒开始镀铬?它可以通过chrome首选项或命令行参数来控制吗?
当然有多种选择来模拟慢速互联网连接,但问题是关于chrome + selenium.
performance selenium google-chrome bandwidth-throttling selenium-webdriver
我有一个单页面应用程序与几个不同的API进行通信,我希望能够限制对特定的API进行测试.是否可以使用Chrome DevTools进行网络限制的域特定?
我知道您可以通过网络条件选项卡限制Chrome中的网络并模拟慢速连接(例如常规3G连接),但这会影响所有请求.我希望只影响一个特定的API来模拟这个其他服务真的很慢但其他所有服务都很好的情况.
javascript api google-chrome bandwidth-throttling google-chrome-devtools
使用时可以轻松限制kbps urllib2
吗?如果是,您可以指导我的任何代码示例或资源将不胜感激.
在测试我在Windows 7 Ultimate x64上编写的UDP多播服务器时,我遇到了一个最奇怪的事情.在背景中使用foobar2000播放音乐显着提高了服务器的传输速率,同时也导致了轻微的数据包丢失.关闭音乐会立即将传输速率降低到可接受的水平以下,但也会造成0个数据包丢失.(我有一个客户端应用程序与服务器通信并报告未确认的数据包)
我知道Vista的(以及更高)限制行为使媒体和网络应用程序很好地协同工作,但我当然没想到播放音乐会提高网络性能,也不会让网络性能降低如此显着.
从我的服务器应用程序的代码角度来看,我能做些什么,以便无论是否在Vista上播放音乐,它都能始终如一地执行?我当然希望避免告知我的所有客户如何调整他们的注册表以获得可接受的传输速率,并且还希望避免让他们简单地"播放音乐"以获得可接受的传输速率.在我看来,应用程序应该"正常工作".
我认为解决方案涉及过程优先级,MMCSS或可能的其他一些模糊的Windows API调用,以使其在此处执行The Right Thing(TM).
此外,抱歉,创建一个可重现的测试用例是一项非常重要的工作.仅当物理NIC的驱动程序正在主动执行工作且无法使用环回接口再现时,才会发生限制行为.人们需要一个客户端实现,一个服务器实现和物理网络硬件来测试.
我想设置的下载/上传文件速度的限制,发现扭曲提供twisted.protocols.policies.ThrottlingFactory来接手这份工作,但我不能得到它的权利.我设置readLimit
和writeLimit
,但文件上的最高速度还是下载.我究竟做错了什么?
from twisted.protocols.basic import FileSender
from twisted.protocols.policies import ThrottlingFactory
from twisted.web import server, resource
from twisted.internet import reactor
import os
class DownloadPage(resource.Resource):
isLeaf = True
def __init__(self, producer):
self.producer = producer
def render(self, request):
size = os.stat(somefile).st_size
request.setHeader('Content-Type', 'application/octet-stream')
request.setHeader('Content-Length', size)
request.setHeader('Content-Disposition', 'attachment; filename="' + somefile + '"')
request.setHeader('Accept-Ranges', 'bytes')
fp = open(somefile, 'rb')
d = self.producer.beginFileTransfer(fp, request)
def err(error):
print "error %s", error
def cbFinished(ignored):
fp.close()
request.finish()
d.addErrback(err).addCallback(cbFinished)
return server.NOT_DONE_YET
producer = FileSender() …
Run Code Online (Sandbox Code Playgroud) chrome开发者控制台是否有API来更改网络限制?
我一直在查看文档,但还没有看到任何内容,但是有没有未记录/深挖某处的功能?
我正在设置一个概念证明来限制终端(客户端)的入口流量:
eth0 -> ifb0 -> htb -> filter by ip -> htb rate -> fq_codel+ecn
Run Code Online (Sandbox Code Playgroud)
我有两个源ips用于特定程序我想要限制.有问题的程序打开了一堆tcp连接(下载,因此进入限制),我想限制它使用(完成)的总入口带宽,并在连接到相同IP地址之间进行公平调度(这个问题).
最后有1个带速率的桶和1个fq_codel
实例.
我有它的工作,但我有一些问题:
每个互联网研究流程id是"5元组的哈希",问题是,数据包的哪些元素是5元组的一部分?是否包括源端口和目标端口?
如何在使用HttpWebRequest时限制带宽的使用?
有没有一种有效的方法来限制某个Java进程的带宽?
我熟悉trickle
在运行时限制某个进程的带宽的解决方案
sudo trickle -s -d 1024 /path/to/app.sh
Run Code Online (Sandbox Code Playgroud)
但是,随着Java进程打交道时,它使一个更大的挑战,因为应用程序启动JVM
或在某些情况下发起的包装服务JVM
-这意味着像"涓流"的解决方案将无法正常工作.
我可以尝试限制(使用trickle
)整个java进程(通过包装/搞乱/usr/bin/java
s.link) - UGLY.有谁知道一个更好的解决方案来限制java进程的带宽(JVM
)?
谢谢!
.net ×2
c# ×2
python ×2
api ×1
java ×1
javascript ×1
linux ×1
networking ×1
performance ×1
routing ×1
selenium ×1
throttling ×1
twisted ×1
urllib2 ×1
windows-7 ×1