Конфигурация:
- сам робот на линуксе
- remote library и тестовая виртуалка (для SUT) на винде
- собственная небольшая библиотека на питоне общается с SAP GUI (python, windows)
Как в этой конфигурации проще всего подступиться к скриншотам: написать все “с нуля” (python с гуглом в помощь) или можно воспользоваться чем-то готовым?
Задача-то стандартная: в случае fail-а получить скриншот (желательно не всего экрана - в SAP-е мы знаем координаты того, что нам интересно). Сам скриншот можно оставить на винде (это как-нить заберем).
Результат (возможность скриншотенья) также нужен в теме создания инструкций: в определенных местах теста для целей использования теста как инструкции вставлять картинки (те самые скриншоты).
Если кто делал - поделитесь, интересно.
Здравствуйте.
Я также хотел делать нечто подобное. Отличие в том, что библиотека должна писать видео. При исследовании задачи решил для себя следующее
- Это должна быть remote library
- Если это скриншот, то она должна отдавать его в тест.
- В тесте мы сами решаем, куда его положить.
- На java, как мне показалось, это писать проще.
Да, согласен про remote library (собственно, по-другому вроде как не получится).
Отдавать в тест - тоже правильно (на виртуалке с SAP не должно оставаться ничего “ценного”, ее должно быть возможно перезалить в любой момент, их, теоретически, много, т.о. все нужно централизовать на тестовый сервер).
Что-нить из ssh библиотек может пригодиться, подумаю, по результатам отпишусь (у нас это уже подходить к приоритету, скоро надо будет решать, пока просто думаем).
Для себя решил - оказалось не сложно:
- на remote сервере написал простенький “скриншотер” (wxpython, кстати, пока гуглил тему находил про сложности с несколькими мониторами - не подтвердилось. У меня - 2 монитора, скриншотит по координатам на обоих)
- результат (содержимое файла) возвращаю как любой другой результат return-ом на сервер тестирования (даже не пришлось ничего делать)
- в тесте сохраняю полученные с remote сервера бинарные данные в файл с нужным именем
Работает быстро, надежно.
В САПе мы знаем геометрию контролов, так что в удаленной библиотеке получается функция сделать_скриншот_по_ид_контрола(), я дольше думал про это, чем делал.
Вообще, remote server - хорошая штука, добротно написан, пока удовлетворяет всему.
Прикручивать ли это автоматом к ошибкам - пока не решил. Попробуем “явочным” способом (вставлять там, где нужно, например, в местах проверок содержимого экрана). В-принципе, в моей САП-библиотеке (которая взаимодействует с САП) поставить во все места, где возникают exceptionы вызов скриншотера можно, только надо будет “покурочить” робота, чтобы он что-то с полученными данными делал (по умолчанию, как я понимаю, он текст exception-а выводит…). Посмотрим - эксплуатация подскажет.