Подтвердить что ты не робот

Как скрипачить автоматические тесты с использованием Java?

В настоящее время я работаю над автоматизацией моих тестов с использованием Selenium с TestNg и Java. Я могу сделать снимок экрана во время выполнения тестов, но есть ситуации, когда тест проходит, когда в идеале он должен был потерпеть неудачу.

Итак, есть ли какой-либо инструмент java, который может помочь в записи текущих тестов Selenium?

В принципе, я хочу добавить в мой фреймвер. Я много искал в Интернете /SO, но не нашел подходящих ресурсов. Любая помощь или предложение приветствуются.

4b9b3361

Ответ 1

Вы можете использовать java-код для записи своего тестового видео, для запуска этого кода вам также нужно добавить файл jar в свой проект: Ссылка: Дорога к автоматизации

@BeforeSuite
        public void startRecording() throws Exception {    

           GraphicsConfiguration gc = GraphicsEnvironment
                   .getLocalGraphicsEnvironment()
                   .getDefaultScreenDevice()
                   .getDefaultConfiguration();

               this.screenRecorder = new ScreenRecorder(gc,
                   new Format(MediaTypeKey, MediaType.FILE, MimeTypeKey, MIME_AVI),
                   new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
                        CompressorNameKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
                        DepthKey, 24, FrameRateKey, Rational.valueOf(15),
                        QualityKey, 1.0f,
                        KeyFrameIntervalKey, 15 * 60),
                   new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, "black",
                        FrameRateKey, Rational.valueOf(30)),
                   null);
       this.screenRecorder.start();

    }

    @AfterSuite
    public void stopRecording() throws Exception {
      this.screenRecorder.stop();
    }

Ответ 2

Другой вариант - дистанционно запускать ваши тесты на BrowserStack или Sauce Labs - обе службы имеют тестовую версию Video Recording.

Ответ 3

Один из подходов - сделать скриншот после каждого шага, а затем объединить их в видео. Ответы на этот вопрос предоставляют несколько библиотек-кандидатов для этой задачи.

Еще одна идея - это сделать скринкаст во время выполнения теста, используя какой-либо плагин для браузера. Но я не уверен, как начать процесс записи. Возможно, можно отправить короткий отрезок для начала/остановки записи с помощью селена, но я не уверен, что это сработает. Для таких плагинов я не могу предложить больше, чем поиск Google

Ответ 4

Вы можете проверить Selenium-Grid-Extras, созданный и используемый Groupon. Они создали фреймворк, способный выполнять то, что вы описываете, используя Selenium Grid. Я попробовал это сам однажды и, казалось, работал нормально. Возможно, это что-то, что подойдет вашим потребностям.

Ответ 5

Я отвечу на битбоб чуть дальше. Я повторно настроил среду селен-селен с серией groupon Selenium-Grid_Extras, и это работает как шарм. Есть несколько вопросов, на которые вам нужно ответить при настройке узлов/концентраторов в первый раз. После запуска java -jar Selenium-Grid-Extras-Jar.jar в какой-то момент он запрашивает у вас количество видео, которое вы хотите записать по умолчанию 20. После этого тестовый запуск всей записи доступен через концентратор: порт, как показано здесь

Принимая это немного дальше, вы можете контролировать запись из своего теста с помощью groupon api. У вас есть гибкость. Существует открытый issue, но он дает вам возможность управлять этим, а также через службу отдыха

Ответ 6

Вы можете использовать класс Robot для автоматического снятия экрана с вашего java-кода, когда вам это нужно. Он является частью стандартной библиотеки java.

Создайте робота в начале теста:

Rectangle screen =  new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
Robot robot = new Robot();

Затем, когда вам нужно сделать снимок экрана (каждый шаг в вашем тесте), просто позвоните:

    BufferedImage capture = robot.createScreenCapture(screen);
    ImageIO.write(capture, "jpg", new File("c:/some_distinct_name_designating_test_phase_and_number.jpg"));