java - 我如何测试我的连接池是否以正确的方式工作?

标签 java http soap testing axis2

我正在使用 Apache Axis 2 实现 SOAP 客户端。由于 SOAP 客户端必须处理大量请求,我正在使用连接池。

为此,我必须为从 WSDL 文件生成的 stub 设置一些传输层配置:

stub._getServiceClient().getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Constants.VALUE_TRUE);

MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
connectionManager.getParams().setDefaultMaxConnectionsPerHost(MAX_CONNECTIONS_PER_HOST);
connectionManager.closeIdleConnections(IDLE_CONNECTION_TIMEOUT);
HttpClient httpClient = new HttpClient(connectionManager);

stub._getServiceClient().getOptions().setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);

我的客户似乎工作得很好。但是,我想知道如何测试连接池是否以正确的方式工作(即创建的连接仅在 IDLE_CONNECTION_TIMEOUT 常量定义的时间后才被销毁)。有什么想法吗?

最佳答案

基于 JUnit 3.x 的伪代码:

  setUp() {
    initialize connection manager;
    initialize connection by creating client;
  }

  tearDown() {
    close connection if necessary;
    close connection manager if necessary;
  }

  testConnectionOpen() {
    assert that connection is open;
    pause for time of idle connection timeout - 1 second;
    assert that connection **is still open**;
  }

  testConnectionClosed() {
    assert that connection is open;
    pause for time of idle connection timeout + 1 second;
    assert that connection **is closed**;
  }

加 1 秒和减 1 秒应根据连接管理器的灵敏度进行调整。

关于java - 我如何测试我的连接池是否以正确的方式工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1093888/

相关文章:

.net - Uri 中的 dontEscape 支持有什么用? .NET 3.5

java - 在动态信封中包装 json 响应 - Rest api

java - 使用java和web服务获取soap请求

java - 如何调用 SOAP Web 服务使用带有 SSL 的 httpclient

java - CompareObjectsWithEquals PMD 规则的目的

java - 比较两个文本(一个来自按钮,点击后比较),Android

java - 自定义 Spring Boot 启动器 : how do you contribute i18n messages to the MessageSource?

java - ChromeDriver Selenium 出现 "java.lang.module.InvalidModuleDescriptorException: Provider class org.apache.bsf.BSFManager not in module"错误

node.js - 有没有办法在客户端计算机中永久缓存文件?

php - 更改 PHP SoapClient 请求中的 namespace ?