Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Создание скриншотов в remote варианте robot framework на windows

screenshot
windows
robot-framework
sap
python
Теги: #<Tag:0x00007f7b6904b4d8> #<Tag:0x00007f7b6904ae48> #<Tag:0x00007f7b6904aad8> #<Tag:0x00007f7b6904a4e8> #<Tag:0x00007f7b6904a0b0>

(Michael Korolev) #1

Конфигурация:

  • сам робот на линуксе
  • remote library и тестовая виртуалка (для SUT) на винде
  • собственная небольшая библиотека на питоне общается с SAP GUI (python, windows)

Как в этой конфигурации проще всего подступиться к скриншотам: написать все “с нуля” (python с гуглом в помощь) или можно воспользоваться чем-то готовым?

Задача-то стандартная: в случае fail-а получить скриншот (желательно не всего экрана - в SAP-е мы знаем координаты того, что нам интересно). Сам скриншот можно оставить на винде (это как-нить заберем).

Результат (возможность скриншотенья) также нужен в теме создания инструкций: в определенных местах теста для целей использования теста как инструкции вставлять картинки (те самые скриншоты).

Если кто делал - поделитесь, интересно.


(Dmitriy Zverev) #2

Здравствуйте.
Я также хотел делать нечто подобное. Отличие в том, что библиотека должна писать видео. При исследовании задачи решил для себя следующее

  1. Это должна быть remote library
  2. Если это скриншот, то она должна отдавать его в тест.
  3. В тесте мы сами решаем, куда его положить.
  4. На java, как мне показалось, это писать проще.

(Michael Korolev) #3

Да, согласен про remote library (собственно, по-другому вроде как не получится).

Отдавать в тест - тоже правильно (на виртуалке с SAP не должно оставаться ничего “ценного”, ее должно быть возможно перезалить в любой момент, их, теоретически, много, т.о. все нужно централизовать на тестовый сервер).

Что-нить из ssh библиотек может пригодиться, подумаю, по результатам отпишусь (у нас это уже подходить к приоритету, скоро надо будет решать, пока просто думаем).


(Michael Korolev) #4

Для себя решил - оказалось не сложно:

  • на remote сервере написал простенький “скриншотер” (wxpython, кстати, пока гуглил тему находил про сложности с несколькими мониторами - не подтвердилось. У меня - 2 монитора, скриншотит по координатам на обоих)
  • результат (содержимое файла) возвращаю как любой другой результат return-ом на сервер тестирования (даже не пришлось ничего делать)
  • в тесте сохраняю полученные с remote сервера бинарные данные в файл с нужным именем

Работает быстро, надежно.

В САПе мы знаем геометрию контролов, так что в удаленной библиотеке получается функция сделать_скриншот_по_ид_контрола(), я дольше думал про это, чем делал.

Вообще, remote server - хорошая штука, добротно написан, пока удовлетворяет всему.

Прикручивать ли это автоматом к ошибкам - пока не решил. Попробуем “явочным” способом (вставлять там, где нужно, например, в местах проверок содержимого экрана). В-принципе, в моей САП-библиотеке (которая взаимодействует с САП) поставить во все места, где возникают exceptionы вызов скриншотера можно, только надо будет “покурочить” робота, чтобы он что-то с полученными данными делал (по умолчанию, как я понимаю, он текст exception-а выводит…). Посмотрим - эксплуатация подскажет.