サーバーとのクライアントのソケット接続をシミュレートする約 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 テストすべてを書き直さなくても、これを行う方法はありますか? (はい、そう言ってください:))
ありがとう!