Работа с роботами: цель и рекомендации по использованию папок ресурсов и библиотек

#robotframework

Вопрос:

Я размышляю о целях и наилучшей практике использования папок ресурсов и библиотек в работе с роботами.

Ниже я сформулировал несколько утверждений, которые служат иллюстрацией моих вопросов. (Используемые сокращения: KW = ключевое слово, RF = Каркасная работа, TS = TestSuite).

Заявления/Вопросы:

Каждый KW, предназначенный для совместного использования между TS и написанный в RF-синтаксисе, должен быть помещен в файл .resource в папке ресурсов?

Каждый KW, написанный на Python, должен быть помещен (как метод внутри файла .py) в папку библиотеки?

Т. е. линия разграничения между папкой ресурсов и библиотекой проводится на основе синтаксиса, используемого при написании KW (RF-KW переходит в папку ресурсов, а Python — KW переходит в папку библиотек).

Или, скорее, следует проводить линию разграничения по близости к испытательной установке и тестируемой системе. (т. е. Ключевые слова высокого или низкого уровня. Где, как говорят, ключевые слова низкого уровня взаимодействуют с тестируемой системой). И, следовательно, вы могли бы поместить python KW (методы) в папку ресурсов?

Ответ №1:

Мое мнение — Да по всему, даже по последнему абзацу с «Или». Все, вплоть до вопросов о содержании/синтаксисе файла. И если в вашем файле python (библиотека) есть KW-ы, которые имеют контекстуальный смысл находиться в папке с другими аналогичными файлами RF (ресурсов) — поместите его туда.

Помните две вещи: для работы с роботом различие между Resource и Library в основном заключается в том, какой синтаксис он ожидает и как импортировать ресурсы цели. Он не навязывает никаких жестких ожиданий относительно своей цели.
Например, ничто не мешает вам иметь ключевое слово высокого уровня, разработанное на python, например

 def login_with_user_and_do_complex_compund_action(user, pass, other_arg)  

, ни для создания относительно низкоуровневого KW, написанного в синтаксисе Robotframework:

 Keyword For Complex Math That Should Better Be In Python  [Arguments] ${complex_number} ${transformer_functuon} ${other_arg}  

Другое дело, что Robotframework-это инструмент (набор), с помощью которого вы создаете свою платформу автоматического тестирования для SUT. Под вашей структурой я подразумеваю структуру и организацию наборов и тестов, их взаимосвязи и иерархию, а также «помощников» для их операций — ранее упомянутые файлы ресурсов (RF) и библиотеки (py).
До тех пор, пока эта структура логически обоснована, имеет установленные соглашения и ее легко понять и следовать, вы можете иметь любую структуру, которая вам подходит.

Комментарии:

1. Спасибо за ваш ответ! Я полагаю, что мы поместим все файлы, содержащие KW, в папку ресурсов, независимо от того, написан ли файл в py или в rf (как, я полагаю, вы предложили).

2. Я предложил следующее: если логическое расположение функций в файле предполагает, что они должны быть вместе, то размещение их физически в одном каталоге должно быть более чем нормально. Продолжайте в том же духе 🙂