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

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

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

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

6 ответов

Вы можете использовать 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();
    }

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

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

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

Вы можете проверить https://github.com/groupon/Selenium-Grid-Extras, созданный и использованный Groupon. Они создали фреймворк, способный делать то, что вы описываете, используя Selenium Grid. Я сам попробовал один раз и, похоже, работал нормально. Может быть, это то, что подойдет вам.

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

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

Вы можете использовать класс 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"));
Другие вопросы по тегам