Скриншот LeanFT и selenium webdriver — переключение между

Мы используем селен для веб-приложений и LeanFT для настольных приложений и приложений Citrix (например, PowerBuilder, эмулятор терминала) с использованием Java.

Использование только LeanFT или selenium не вызывает проблем (мы используем LeanFT Reporter и селен TakesScreenshot), но проблема заключается в том, что в одном потоке со скриншотом мы переключаем контекст между LeanFT и Selenium.

Что мы пробовали до сих пор: Пытался переключиться на захват экрана LeanFT, если селен getDriver возвращает null, но это не так, если мы сначала начнем webDriver, произойдет сбой

В нашем фреймворке снимок экрана является частью onTestPass, onTestFail, поэтому конечным пользователям не нужно явно вызывать getScreenshot.

Есть идеи, что мы могли бы использовать для уведомления о методе захвата экрана на основе LeanFT или селена? Цель состоит в том, чтобы создать единый отчет, используя как результаты selenium, так и результаты LeanFT.

Примечание. Мы не хотим использовать LeanFT для всего (из-за возможности повторного использования существующих скриптов), и мы должны использовать LeanFT для систем, не связанных с Интернетом.

На основании предоставленных сведений ответить непросто. То, что вы описываете, не совсем обычное устройство. Я немного знаком с селеном и много знаю о LeanFT, поэтому мне нужно знать (1), как обрабатываются скриншоты в селене (какой метод и какой тип он возвращает) (2) какова точная цель? есть единый отчет? (3) Можете ли вы переключиться на LeanFT в случае неудачи? (не когда ноль) и (4) вы не можете использовать reportEvent с изображением, предоставленным селеном?

Adelin 15.03.2019 08:55

Чтобы закрыть избирателей: обратите внимание, что OP не запрашивает сторонние ресурсы, а скорее то, как использовать две структуры, тощий и селен вместе. Это верно, хотя вопрос мог бы быть более ясным, поэтому я попросил указать пункты выше.

Adelin 15.03.2019 09:06

(1) Скриншоты Selenium делаются с использованием интерфейса «takescreenshot» путем преобразования выходных данных webdriver в файл изображения, который копируется в нужное место, откуда мы строим отчет (мы используем интерфейс ITestlistener TestNg), внутри которого вызываются скриншоты. (2) Да, это для один отчет (3) Как вы упомянули, мы используем комбинацию фреймворков, Leanft использует reportersdk.init, который обрабатывает захват экрана Leanft, но в нашем ITestlistener нам нужно различать, когда использовать Leanft Reporter и делать скриншот (4) Надеюсь, пункт 3 объясняет!

HiroMT 15.03.2019 09:23

Итак, вы используете testNG в качестве фреймворка? Можете ли вы опубликовать минимальную настройку, разборку и методы тестирования? поэтому мы видим логику - постарайтесь максимально минимизировать, используя как селен, так и Leanft, и я дам подробный ответ. но прежде чем я смогу это сделать, мне нужно увидеть некоторую текущую логику

Adelin 15.03.2019 12:29

Не вдаваясь в подробности, установка и демонтаж являются частью фреймворка, который работает как onTestSuccess, onTestFailure, он вызовет помощника по отчету, который имеет getScreenshot для построения отчета. После каждого шага будет сделан снимок экрана в зависимости от результата (пройдено/не пройдено). Будь то leanFT или selenium, после каждого шага он будет вызывать эти методы для создания снимков экрана, и в этих методах нам нужно определить, когда использовать изображение репортера LeanFT и изображение Selenium.

HiroMT 15.03.2019 15:25

@Adelin Нам удалось решить это более грубым способом. Он работает так, как мы хотели. По сути, мы сравниваем образ LeanFT (который делает снимок экрана для всех шагов) и смотрим, пришло ли новое изображение, если не заходим в веб-драйвер и делаем снимок экрана с помощью веб-драйвера.

HiroMT 15.03.2019 17:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
222
0

Другие вопросы по теме