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

Подход для "максимально гибкой", многоязычной работы с robot framework?


(rpwheeler) #1

Есть потребность и задумка реализовать очень гибкое, многовариантное решение, в котором надо дергать и несколько вебсайтов сразу (фронтенд и бэкенд), и реализацию фронтенда на Flash, и какие-то системные вещи одновременно, а возможно и “выполнять произвольный код” в хорошем смысле этого слова (выводить диалог “тест 20 показал ситуацию F, какой путь тестирования выбрать дальше”).

Вопрос в том, какой подход лучше выбрать, если, допустим, в некоторых моментах потребуется подключать и Selenium и Sikuli (причем даже в рамках реализации одного теста) , и, возможно, для OCR еще какие-то третьи инструменты типа Tesseract и/или подготовки изображений?

Может, какая-то статья/мануал, по “привязыванию к Robot Framework и гонянию чего попало, будь оно на Java или на Python или вообще вызовом сторонних .exe файлов”?


(Павел) #2

Привязать “что-то” к Robot Framework через дополнительные Python модули очень даже просто.

Для начала создайте Python файл (к примеру, extend_python.py) с функцией, которая будет вызывать калькулятор:

import os

def run_third_soft_test():
    os.system("calc")

Дальше можно создать новый Test Suite и подключить к нему файл “extend_python.py” (лучше всего создайте возле файла сьюта папку “external_modules” и в него положите новый Python файл). Чтобы подключить надо перейти на настройки сьюта и в “Add Import” нажать на “Library”, дальше найти новый модуль и добавить.

Чтобы проверить подтянулся ли новый модуль, нажмите F5, появится окно “Search Keywords”, там в списке должен быть файл “extend_python.py”, если его выбрать, то всписке должен быть keyword “Run Third Soft Test”.

Создайде новый тест и первым шагом напиши название нового keyword “Run Third Soft Test”.
Сохраните тест и запустите. Должен запуститься Калькулятор (момент, у меня он открылся не сразу, пришлось ждать с полминуты, хотя так не должно быть).

Если надо что-то по серьезней, к примеру передавать параметры с теста, то на пайтоне это будет выглядеть приблизительно так:

def run_third_soft_test(app_name, some_argument):
   execution_string = '%s %s' % (app_name, some_argument)
   os.system(execution_string) 

Когда подключите уже этот keyword к роботу, то увидете, что надо два дополнительных параметра, без которых keyword не сработает.
Можно вызывать и batch файлы если удобней, просто в строке выполнения указывайте путь к этому файлу.


(rpwheeler) #3

Спасибо!

Такое я уже (немножко) делал, только через Jython, с целью сопряжения Robot Framework и Sikuli (писал свою custom test library). Вот с чем пока не разбирался, так это с подключением Java-кода. Не посоветуете ли чего?

Нашел сравнительно свежий tutorial “Robot Framework Tutorial – Writing Keyword Libraries in Java” (
https://blog.codecentric.de/en/2012/06/robot-framework-tutorial-writing-keyword-libraries-in-java/ ), но может еще кто чего подскажет?