JUnit对与服务器的数千个并发套接字连接进行负载测试

奥斯曼

我大约有100个JUnit测试,它们可以模拟客户端与服务器的套接字连接。他们看起来像这样:

@Test
public void testProtocolInACertainWay() throws Exception {
    Socket socket = _socketFactory.createSocket(_host, _port);  // SSLSocketFactory

    // Send payload
    DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
    outputStream.write(/* test-specific payload */);
    outputStream.flush();

    // Receive response
    DataInputStream inputStream = new DataInputStream(socket.getInputStream());        
    socket.setSoTimeout(5000);
    byte[] buffer = new byte[512];
    int numBytesRead = inputStream.read(buffer);
    buffer = ArrayUtils.subarray(buffer, 0, numBytesRead);

    // Assert test-specific stuff on response
    Assert.assertTrue(buffer[0] == (byte)1);  // for example

    /* At this point, depending on the test, we either repeat similar steps with different payloads or end the test */
}

现在,我希望能够从服务器一次运行150万次这些测试(或子集)。这意味着我想同时发出1.5M套接字写,读取所有写,并声明它们的响应。

有没有一种方法可以不必重写所有100个JUnit测试来做到这一点?(请说是,所以:))

谢谢!

奥斯曼

经过大量研究,发现我真正想做的是使用Netty或vert.x。我将不得不重写所有测试以使用事件队列而不是阻塞I / O。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法连接到Kafka服务器的TCP套接字

您的服务器套接字监听积压限制为100个连接

创建一个套接字服务器,它允许通过线程和Java进行多个连接

Java服务器套接字连接重置

远程连接到简单的套接字python服务器

服务器/客户端套接字连接

Python通过单个套接字在TCP服务器上进行多个单元测试

在iOS中处理数千个套接字消息

如何使用套接字连接到FTP服务器?

服务器-通过JUnit上的套接字进行客户端数据交换测试

无法连接到套接字io服务器

外部连接到Python套接字服务器

python中的套接字服务器拒绝连接

与服务器Python的多套接字连接

Rust TCP套接字服务器仅使用一个连接

实施数千个(k,kk)解释器

Flutter无法连接到套接字服务器

具有数千个虚拟用户的Node.JS负载测试工具

运行数千个命令

TCP / IP套接字服务器并发

在两台服务器之间传输数千个文件的最佳linux工具

Web套接字问题使用Jetty Web服务器进行安全连接

连接已排序的数千个文件,然后快速对输出文件进行重新排序

Django Cache:在基本服务器资源上长时间缓存数千个查询

创建一个能够每秒处理数千个请求的 TCP 套接字服务器

服务器可以直接连接它所连接的两个套接字吗?

Java并发套接字编程

如何使用 Spock 对 Java 套接字服务器/客户端对进行单元测试?

在服务器和数千个客户端之间进行实时通信的情况下,MQTT 是否有效?