Я хотел бы создать свой собственный инструмент нагрузочного тестирования на Java с целью возможности нагрузочного тестирования веб-приложения, которое я создаю на протяжении всего цикла разработки. Веб-приложение будет получать запросы HTTP Post от сервера к серверу, и я хотел бы найти его начальную транзакцию в секунду (TPS) вместе со средним временем ответа.
Сообщения о запросах и ответах будут в формате XML (хотя я не думаю, что это действительно применимо :)).
Я написал очень простое Java-приложение для отправки транзакций и подсчета количества транзакций, которые он смог отправить за одну секунду (1000 мс), однако я не думаю, что это лучший способ загрузить тест. На самом деле я хочу отправлять любое количество транзакций одновременно - 10, 50, 100 и т. Д.
Любая помощь будет оценена!
Да, и вот мой текущий тестовый код приложения:
Thread[] t = new Thread[1];
for (int a = 0; a < t.length; a++) {
t[a] = new Thread(new MessageLoop());
}
startTime = System.currentTimeMillis();
System.out.println(startTime);
for (int a = 0; a < t.length; a++) {
t[a].start();
}
while ((System.currentTimeMillis() - startTime) < 1000 ) {
}
if ((System.currentTimeMillis() - startTime) > 1000 ) {
for (int a = 0; a < t.length; a++) {
t[a].interrupt();
}
}
long endTime = System.currentTimeMillis();
System.out.println(endTime);
System.out.println("Total time: " + (endTime - startTime));
System.out.println("Total transactions: " + count);
private static class MessageLoop implements Runnable {
public void run() {
try {
//Test Number of transactions
while ((System.currentTimeMillis() - startTime) < 1000 ) {
// SEND TRANSACTION HERE
count++;
}
}
catch (Exception e) {
}
}
}