是否可以限制Tomcat服务器的带宽?我需要模拟在缓慢(拨号)互联网连接上运行的网站。所有测试都在本地主机上进行。
感谢您的帮助!
是否可以限制Tomcat服务器的带宽?我需要模拟在缓慢(拨号)互联网连接上运行的网站。所有测试都在本地主机上进行。
感谢您的帮助!
通过创建阀门,在Tomcat中很容易实现。
创建一个继承自tomcat的ValveBase类的类。
代码应该像这样:
/**
* {@inheritDoc}
*/
@Override
public void invoke(final Request request, final Response response)
throws IOException, ServletException {
if (randomDelay != 0) {
long delay = minDelay + randomizer.nextInt(randomDelay);
try {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("sleeping for " + delay + " ms");
}
Thread.sleep(delay);
} catch (InterruptedException e) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("someone wake me up : " + e.getMessage());
}
}
}
// let's continue !
getNext().invoke(request, response);
}
将其编译成一个jar包,然后将其放入tomcat的lib目录中(通常为{catalina.home}/lib)。
最后,在您的server.xml文件中添加valve声明:
<Server ...>
<Service name="Catalina">
<Engine name="Catalina" defaultHost="localhost">
(...)
<Host name="localhost" ...>
<Valve className="tools.tomcat.RandomDelayValve" />
HIH
在Tomcat中不可能实现,你应该在外部寻找提供这种功能的HTTP代理,并通过该代理隧道传输你的测试。在最坏的情况下,自己编写这样的代理,不需要超过十几行代码。
您可以使用jmeter来完成此操作,请参见以下链接:
- http://jmeter.512774.n5.nabble.com/httpclient-socket-http-cps-td524481.html另请参阅: