2015-06-12 4 views
0

У нас есть процесс Java, на который мы хотим выполнить тестирование нагрузки. Этот процесс вызывает вызов REST внешнему поставщику. Мы хотим контролировать производительность в выходные дни. Он должен быть протестирован примерно с 1000 экземплярами процесса. Каковы возможные способы сделать это?Планирование нескольких экземпляров одного Java-процесса

У меня есть 2 решения:

  1. Начало процесса в нескольких терминалах, однако, учитывая, что мы хотим сделать это за 1000, например, не практично.

  2. Напишите сценарий оболочки для создания экземпляра, чтобы клонировать.

Есть ли лучшее решение для этого?

Любая библиотека была бы полезна.

Ниже приведен пример кода, который мы хотим запланировать:

public static void main(String[] args) { 


    try { 
     getToken(); 
     Thread.sleep(10000); 
    } catch (Exception e) { 

     e.printStackTrace(); 
    } 


    final Timer timer = new Timer(); 
    Timer stopTaskTimer = new Timer(); 
    TimerTask task = new TimerTask() { 
     @Override 
     public void run() { 
      try { 
       /*getToken(); 

       Thread.sleep(15000);*/ 
       getResponse("#############"); 


      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 
    TimerTask stopTask = new TimerTask() { 
     @Override 
     public void run() { 
      timer.cancel(); 

     } 
    }; 

    timer.scheduleAtFixedRate(task, 0, 60000); 
    try { 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     Date date = sdf.parse("2015-06-20 19:41:30"); 
     //stopTaskTimer.schedule(stopTask, date); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

} 
+0

Возможно, фрагмент кода может быть полезен. В общем, посмотрите на класс «Тема». –

+0

Добавлен фрагмент кода примера – Anupam

ответ

2

Использование JMeter или другого инструмента тестирования сравнимой нагрузки. Он поддерживает все, что вам нужно из коробки.

0

@ h22, вероятно, лучшее решение, но ответить на ваш вопрос:

Перемещение кода из основных в метод «Выполнить» и сделать свой класс реализации «исполняемым», то сделайте петлю в «основной», что запускает необходимое количество java.lang.Thread https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html

Смежные вопросы