вторник, 2 апреля 2013 г.

Нагрузочное тестирование и Selenium

  Приходит ко мне программист и говорит: "Можешь ли ты сделать нагрузочный тест", но такой, что если будут какие то ошибки, то писать их в лог. А еще хотелось бы что бы твой тест, который уже есть прошли одновременно несколько пользователей.  
  Для нагрузочных тестов по сути все используют старый добрый Jmeter. Я не исключение, и верю, что с помощью этого инструмента можно сделать все что душе угодно. Но наверняка случались подобные ситуации, когда необходимо сделать очень быстро! 
Я хочу показать свою реализацию, которая, возможно, многим автоматизаторам и программистам покажется глупой и нелепой. Но для тех кто не сталкивался может помочь.
Прочитав статью я приступил. 
Создал класс  Load. 
public class Load extends Thread{
 test t = new test();
 public void run() {
 try {                                                                                            
            try {
                t.setUp();
                t.test();
                t.tearDown();
            } catch (Exception ex) {
                Logger.getLogger(Load.class.getName()).log(Level.SEVERE, null, ex);
            }
           Thread.sleep(400);
        } catch (InterruptedException ex) {
            Logger.getLogger(Load.class.getName()).log(Level.SEVERE, null, ex);
     }
  }
}

Затем в main создал массив объектов Load 
 Load ld[] = new Load[50];

А далее грузите как хотите
 for (int k=1;k<=50;k++){
     ld[k] = new Load();
     try{
     ld[k].start();
     }

Результат данного теста можно было наблюдать только на сервере (слушатели и вывод я не писал). 

Более подробно и грамотно  нагрузочное тестирование с помощью Selenium рассматривается тут