заявление:
1. Этот документ является результатом совместной работы с коллегами в Чунцине и был переведен не мной одним.
2. Судя по переводу версии RobotFramework2.6.3, из-за ограниченного уровня и ограничений по времени обязательно будут ошибки, пожалуйста, указывайте на них.
Особые существительные:
Тестовые данные: тестовые данные
Набор тестов: набор тестов
каталог набора тестов каталог набора тестов
тестовая библиотека: тестовая библиотека
побег: побег
разделитель: разделитель
вывод: вывод (здесь имеется в виду отчет и журнал)
пробел: символ пробела
пробелы: символы-заполнители (пробел, новая строка, табуляция)
преамбула: заголовок сообщения
---------------------------------------------------------------------------------------------
Оригинальная ссылка:
http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html?r=2.6.3#id314
--------------------------------------------------------------------------------------------
часть перевода
В этом разделе описаны общие правила синтаксиса для данных радиочастотных испытаний. В последующих главах будет объяснено, как на самом деле создавать тестовые примеры, наборы тестов и т. д.
2.1.1 Файлы и каталоги
2.1.2 Поддерживаемые форматы документов
2.1.3 Таблица тестовых данных
2.1.4 Правила анализа данных
Иерархическая структура организации тест-кейсов строится по следующим правилам:
· Тестовые случаи хранятся в файлах тестовых сценариев.
· Файл тестового сценария автоматически создает набор тестов, содержащий все тестовые примеры в файле.
· Каталоги, содержащие файлы тестовых примеров, образуют набор тестов более высокого уровня. Этот каталог наборов тестов использует все наборы тестов, созданные файлами тестовых наборов в этом каталоге, в качестве своих поднаборов.
· Каталоги наборов тестов также могут содержать другие каталоги наборов тестов, и они могут быть вложены настолько глубоко, насколько это необходимо.
· Каталог набора тестов может содержать специальный файл инициализации.
кроме:
· Тестовая библиотека содержит основные ключевые слова пользователя.
· Исходные файлы содержат переменные и ключевые слова расширенного пользователя.
· Файлы переменных предоставляют более гибкий метод создания переменных, чем исходные файлы.
Тестовые данные Robot Framework определяются в табличной форме, а доступные форматы включают язык гипертекстовой разметки (HTML), значения, разделенные табуляцией (TSV), обычный текст или новый структурированный текст (reST).
Robot Framework выбирает анализатор для этих тестовых данных, хранящихся в разных форматах, в зависимости от расширения файла. В расширениях не учитывается регистр. К распознаваемым расширениям относятся .html, .htm и .xhtml для HTML, .tsv для TSV, .txt для обычного текста и .rest для нового структурированного текста.
Существуют различные шаблоны тестовых данных для форматов HTML и TSV, позволяющие легко приступить к написанию сценариев использования.
HTML-формат
В файле HTML тестовые данные определяются в отдельной таблице (см. пример ниже). Robot Framework идентифицирует эти таблицы тестовых данных на основе текста в первой ячейке. Все параметры за пределами распознаваемой таблицы автоматически игнорируются.
Используйте HTML-формат
Setting | Value | Value | Value |
---|---|---|---|
Library | OperatingSystem | ||
Variable | Value | Value | Value |
---|---|---|---|
${MESSAGE} | Hello, world! | ||
Test Case | Action | Argument | Argument |
---|---|---|---|
My Test | [Documentation] | Example test | |
Log | ${MESSAGE} | ||
My Keyword | /tmp | ||
Another Test | Should Be Equal | ${MESSAGE} | Hello, world! |
Keyword | Action | Argument | Argument |
---|---|---|---|
My Keyword | [Arguments] | ${path} | |
Directory Should Exist | ${path} |
Редактировать тестовые данные
Вы можете использовать любой редактор, который вам нравится, для редактирования тестовых данных в HTML-файле.,Однако рекомендуется использовать графический редактор, который действительно видит формат поверхности. Существует также инструмент под названием RIDE.,он специально используется для Редактировать тестовые данные。
Кодировка и ссылки на сущности
поддерживатьHTMLссылка на объект(Например,ä)。также,Если это четко определено в документе параметров.,Подойдет любой формат кодирования. Стандартные документы HTML должны использовать элемент META.,Например:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Документы XHTML должны использовать заголовки XML (преамбулу), как в следующем примере:
<?xml version="1.0" encoding="Big5"?>
Если формат кодировки явно не определен, Robot Framework по умолчанию использует ISO-8859-1.
Формат ТСВ
В роботе Формат также можно использовать в Framework. ТСВ достигает того же эффекта, что и HTML-формат. В документе TSV все данные представлены в формате большой поверхности. Таблица тестовых данные через один или несколько Распознаются символы, начинающиеся со звездочки (*), за которой следует стандартное имя таблицы и необязательная завершающая звездочка. Все данные за пределами первой распознанной таблицы будут автоматически пренебрегать.
использовать Формат ТСВ
*Setting* | *Value* | *Value* | *Value* |
---|---|---|---|
Library | OperatingSystem | ||
*Variable* | *Value* | *Value* | *Value* |
${MESSAGE} | Hello, world! | ||
*Test Case* | *Action* | *Argument* | *Argument* |
My Test | [Documentation] | Example test | |
Log | ${MESSAGE} | ||
My Keyword | /tmp | ||
Another Test | Should Be Equal | ${MESSAGE} | Hello, world! |
*Keyword* | *Action* | *Argument* | *Argument* |
My Keyword | [Arguments] | ${path} | |
Directory Should Exist | ${path} |
Редактировать тестовые данные
Вы можете редактировать документ TSV с помощью любой программы для работы с электронными таблицами, например Microsoft Excel. Выберите формат с разделителями табуляции и не забудьте установить расширение файла .tsv при сохранении файла. Еще один хороший совет — отключить автоматическую проверку, чтобы инструмент обрабатывал все значения в документе как обычный текст.
Документы TSV относительно легко редактировать с помощью текстового редактора, особенно если редактор может интуитивно различать разделители табуляции и пробелы. Документы TSV также поддерживают редактирование через RIDE.
Robot Framework анализирует данные в TSV следующим образом: сначала разбивает содержимое на строки, а затем разбивает строки на ячейки в соответствии с символами в таблице. Программы для работы с электронными таблицами иногда добавляют к содержимому ячеек кавычки (например, «мое». значение"), RF удалит кавычки. Иногда скобки появляются парами, и RF может правильно справиться с этой ситуацией.
Если вы используете программу для работы с электронными таблицами для создания параметров TSV, вам не нужно уделять этому много внимания, но если вы создаете параметры программным способом, вы должны следовать тем же правилам цитирования, что и для электронной таблицы.
кодирование
В документах TSV обычно используется кодирование UTF-8. Поскольку ACSII является подклассом UTF-8, также поддерживается кодирование ASCII.
обычный текстовый формат
обычный текстовый формат и формат ТСВ чем-то похож, но разделители между ячейками разные. Формат ТСВ использует разделитель поверхности Tabs, но в обычном тексте можно передать два и более пробела или вертикальные полосы с пробелами с обеих сторон ( | ) отделить.
такой же Формат Как и в случае с ТСВ, каждой поверхности с тестовыми данными должна предшествовать одна или несколько звездочек. Звездочки и пробелы в других частях будут автоматически игнорироваться, например, ***Настройки*** и *Settings Эффект тот же. То же, что Формат Еще одно сходство между ТСВ заключается в том, что все данные перед первой поверхностью будут заменены на пренебрегать.
в текстовом файлехарактер“Tab”будет автоматически преобразовано в два пространства。так что мы можемиспользовать“Tab”ключевой разделитель ввода,Сразуисуществовать Формат То же, что и в ТСВ. Уведомление, в обычном текстовом файле несколько символов табуляции будут рассматриваться как разделители в формате Формат. ТСВ будет считаться кратным.
формат, разделенный пробелами
Количество пробелов, используемых в качестве разделителей, может быть разным.,Но должно быть как минимум два пробела,Это позволяет данным быть хорошо выровненными. Это очень очевидное преимущество при редактировании в текстовом редакторе обычного формата текста.,Потому что TSV не может контролировать выравнивание данных.
*** Settings ***
Library OperatingSystem
*** Variables ***
${MESSAGE} Hello, world!
*** Test Cases ***
My Test [Documentation] Example test
Log ${MESSAGE}
My Keyword /tmp
Another Test
Should Be Equal ${MESSAGE} Hello, world!
*** Keywords ***
My Keyword [Arguments] ${path}
Directory Should Exist ${path}
Поскольку в качестве разделителя используется пробел, все пробельные ячейки необходимо экранировать с помощью ${EMPTY} или одинарной обратной косой черты.
Пробельные символы обрабатываются одинаково в любом формате файла, начиная с , в конце и при соединении Все пробелы должны быть экранированы.
Символ вертикальной черты и формат, разделенный пробелами.
формат — самая большая проблема с проблемами разделения,Трудно интуитивно отделить ключевые слова и параметры от параметров. Когда ключевое слово имеет несколько параметров,Или проблема становится более заметной, когда параметры содержат пробелы. На данный момент подчеркиваются преимущества формата, разделенного символами вертикальной черты и пробелами.,Потому что визуально,Они могут четко очерчивать границы клеток.
*Setting* | *Value*
Library | OperatingSystem
*Variable* | *Value*
${MESSAGE} | Hello, world!
*Test Case* | *Action* | *Argument*
My Test | [Documentation] | Example test
Log | ${MESSAGE}
My Keyword | /tmp
Another Test | Should Be Equal | ${MESSAGE} | Hello, world!
*Keyword*
My Keyword | [Arguments] | ${path}
Directory Should Exist | ${path}
Простой текстовый файл может содержать как тестовые данные, «разделенные только пробелами», так и «разделенные пробелами и символами вертикальной черты».,Но отдельные строки всегда должны использовать один и тот же разделитель. RF использует символ «|», который необходимо использовать в начале строки для обозначения символа вертикальной черты и пробелов для разделения строк. Но символ вертикальной черты в конце строки не является обязательным. С обеих сторон символа трубы должен быть пробел.,Но если вы не хотите, чтобы данные были ясными,Никакого выравнивания не требуется.
При использовании труб, соответствующих форме, разделенный пробеламикогда,Пустые ячейки не нужны (если только это не пустая ячейка в конце). Единственное, что следует учитывать, это,В реальных тестовых данных символы вертикальной черты, окруженные пробелами, должны быть заключены в обратную косую черту:
${file count} = | Execute Command | ls -1 *.txt \| wc -l
Should Be Equal | ${file count} | 42
Редактор икодирование
По сравнению с HTMLи Формат ТСВ,Самым большим преимуществом обычных текстовых файлов является,Его можно легко редактировать с помощью обычного текстового редактора.
Emacs даже поддерживает специальный robot-mode.elОбеспечить подсветку синтаксисаи Завершение ключевого слова。ХотяRIDEтакжеподдерживатьобычный текстовый файл,Но он поддерживает только формат, разделенный пробелами.
Как и в случае с тестовыми данными TSV, в текстовых файлах всегда используется кодировка UTF-8. Поэтому файлы ASCII также поддерживаются.
формат reStructuredText
reStructuredText (REST) — это удобный для чтения синтаксис разметки обычного текста, обычно используемый в документации проекта Python (включая сам Python, а также это руководство пользователя). Юг). Используя reSTиRF, вы можете смешивать документы в различных форматах, чтобы определять тестовые данные в кратком текстовом формате. Такие тестовые данные также можно легко обрабатывать с помощью текстовых редакторов. Дополнительные инструменты для использования с системами контроля исходного кода.
используется для обработкиreStuctredTextИнструментdoccutilчасть проекта(Скачать по предыдущей ссылке),Вы можете обратиться к его быстромуиспользоватьиллюстрировать(quick reference guide)чтобы увидеть наиболее распространенные форматы, организованные,Конечно, он также включает формат поверхности, используемый RobotFramework. Уведомление,RobotFramework преобразует формат reST в HTML перед фактическим анализом тестовых данных. Следовательно, тестовые данные должны строго соответствовать синтаксису reST.,В противном случае анализ не удастся.
Обратите внимание, что для использования файлов reST в Robot Framework требуется установка модуля Python docutils. |
---|
В файле reST,Данные испытаний определены в поверхности.,Аналогично HTML-формату. RobotFramework определяет поверхность тестовых данных на основе первой ячейки поверхности.,Данные, отличные от распознанной поверхности, будут игнорироваться.
Следующий пример содержит четыре таблицы тестовых данных на простом языке таблиц с умеренным сопротивлением. Обратите внимание, что первая пустая ячейка в каждой строке должна содержать \ или ..
============ ================ ======= =======
Setting Value Value Value
============ ================ ======= =======
Library OperatingSystem
============ ================ ======= =======
============ ================ ======= =======
Variable Value Value Value
============ ================ ======= =======
${MESSAGE} Hello, world!
============ ================ ======= =======
============ =================== ============ =============
Test Case Action Argument Argument
============ =================== ============ =============
My Test [Documentation] Example test
\ Log ${MESSAGE}
\ My Keyword /tmp
\
Another Test Should Be Equal ${MESSAGE} Hello, world!
============ =================== ============ =============
============ ====================== ============ ==========
Keyword Action Argument Argument
============ ====================== ============ ==========
My Keyword [Arguments] ${path}
\ Directory Should Exist ${path}
============ ====================== ============ ==========
Редактировать тестовые данные
Тестовые данные файла reST можно редактировать в любом текстовом редакторе. Здесь рекомендуется использовать текстовый редактор, в котором можно установить шрифт фиксированной ширины, чтобы выровнять элементы таблицы.
пожалуйста Уведомление,RIDEНетподдерживать Редактировать напрямуюreSTТестовые данные в исходном файле。
Временные файлы при использовании reST
Неттакой же ВHTMLили Формат ТСВ,Robot Framework не анализирует файлы reST напрямую. Напротив, docutils автоматически преобразует исходные файлы reST во временные файлы HTML, а затем используется роботом. Фреймворк читает. Эти временные файлы считываются немедленно и Удаление RF не требует от пользователя прямого вызова инструмента docutils.
Синтаксическая ошибка в исходном файле reST
Если файл reST содержит синтаксические ошибки (например, неверный формат таблицы), преобразование из reST в HTML не будет завершено и тестовые примеры не будут считаны из файла. Когда это произойдет, робот FrameworkВоляdocutilsПоявится сообщение об ошибкесуществоватьконсольный вывод,Показать имя файла、Номер строки、Контекст исходного кода и тип ошибки.
Данные испытаний состоят из следующих 4 таблиц. Эти таблицы тестовых данных названы в честь модуля 1, а различные псевдонимы перечислены в последнем столбце. Эти псевдонимы также используются в качестве имен таблиц.
Различные Таблицы тестовых данных: (Поскольку при фактическом использовании используются английские слова, эту часть переводить не нужно)
имя таблицы | эффект | Псевдоним |
---|---|---|
Установочный стол | 1、 Загрузка файлов библиотеки тестов, файлов ресурсов и файлов переменных; 2、 Определить промежуточные переменные для тестовых файлов и тестовых примеров; | Setting, Settings, Metadata |
Таблица переменных | Определения переменных, которые можно использовать в тестовых данных. | Setting, Settings, Metadata |
Таблица тестовых примеров | Создавайте тестовые случаи, используя существующие ключевые слова; | Test Case, Test Cases |
Ключевые слова поверхность | Создавайте ключевые слова пользовательского уровня, используя существующие ключевые слова низкого уровня; | Keyword, Keywords, User Keyword, User Keywords |
Игнорируемые данные
Когда Robot FrameWork анализирует тестовые данные, он обычно игнорирует следующее:
1. Все таблицы, в первой ячейке которых не используется узнаваемое имя таблицы (перечисленное в разделе 2.1.3);
2. Все содержимое первой строки таблицы, которого нет в первой ячейке;
3. Данные за пределами поверхности в HTML/reST и данные перед первой поверхностью в TSV;
4. Все пустые строки использованы для повышения читабельности;
5. В последнюю пустую ячейку в каждой строке необходимо добавить «\», чтобы эти ячейки не были проигнорированы;
6. Все одинарные обратные косые черты (\) считаются escape-символами;
7. Знак #, если он стоит в начале ячейки, то это означает, что данная ячейка содержит содержимое комментария;
8. Все форматированные данные в HTML/reST;
Когда робот Если FrameWork игнорирует определенные данные, данные теста не будут отображаться ни в одном отчете о результатах теста. Кроме того, то же, что и робот Большинство инструментов, используемых с Framework, также игнорируют эти данные. для В роботе Добавьте некоторые видимые данные в выходные данные Framework. В RIDE поместите его в некоторые метаданные описания документа, тестового набора или набора тестов или используйте ключевые слова Log или Comment во встроенной библиотеке.
Побег
Escape-символом Robot Framework является обратная косая черта (\).
Escape-символы используются следующим образом:
Уведомление
Эти правила побега применяются только к значениям параметров, заданным ключевым словом и. Правила изменения значения нельзя использовать в других ситуациях.,Например,Ключевое слово и название тестового примера.
Handling whitespace(Обработка символов-заполнителей)
Robot Платформа обрабатывает символы-заполнители, такие как пробелы, символы новой строки и системные символы, так же, как они обрабатываются в HTML. Это значит робот Framework:
· Удалит начальные и конечные пробелы из всех ячеек (эквивалент функции Trim())
Чтобы запретить Robot Framework анализировать данные в соответствии с приведенными выше правилами, вы можете использовать обратную косую черту.
Кроме того, можно использовать начальные, конечные или последовательные пробелы. переменные{SPACE}Четкое представление. Расширяемый синтаксис переменных, позволяющий даже такие вещи, как{SPACE * 8} Такой синтаксис может очень упростить обработку последовательных пробелов.
Уведомление
Любые экранированные пробелы, которые могут существовать после \n, также будут игнорироваться, чтобы несколько строк данных можно было записать в одну строку. Это означает два строки\nздесь и две lines\n здесь эквивалентно. Исключением из этого правила является,космоссуществоватьРасширенный синтаксис переменныхне игнорируется。
Разделить тестовые данные на строки
Если данные слишком длинные и их необходимо перенести, вы можете использовать многоточие (…), чтобы указать продолжение предыдущей строки. В таблицах тестовых примеров и пользовательских ключевых слов перед многоточием должна быть хотя бы одна пустая ячейка. В таблице настроек и переменных многоточие можно заполнить непосредственно в ячейке имени настройки или имени переменной.
Во всех таблицах любые пустые ячейки перед многоточием игнорируются.
Кроме того, значение части «Настройки» можно записать в несколько таблиц (в основном используется ключевым словом «Документы»). При анализе тестовых данных данные объединяются с пробелом между ними.
Примеры этих синтаксисов приведены ниже. Из первых трех поверхностей показаны данные испытаний перед ветвлением. По трем последним поверхностям видно, что Разделить тестовые данные на После отображения строк требуется меньше столбцов.
Данные испытаний перед ветвлением
Setting | Value | Value | Value | Value | Value | Value |
---|---|---|---|---|---|---|
Dafault Tags | Tag-1 | Tag-2 | Tag-3 | Tag-4 | Tag-5 | Tag-6 |
Variable | Value | Value | Value | Value | Value | Value |
---|---|---|---|---|---|---|
@{LIST} | this | list | has | quite | many | items |
Test Case | Action | Argument | Arg | Arg | Arg | Arg | Arg | Arg |
---|---|---|---|---|---|---|---|---|
Example | [Documentation] | Documentation for this test case. This can get quite long... | ||||||
[Tags] | t-1 | t-2 | t-3 | t-4 | t-5 | |||
Do X | one | two | three | four | five | six | ||
${var} = | Get X | 1 | 2 | 3 | 4 | 5 | 6 |
Тестовые данные после ветвления
Setting | Value | Value | Value |
---|---|---|---|
Dafault Tags | Tag-1 | Tag-2 | Tag-3 |
… | Tag-4 | Tag-5 | Tag-6 |
Variable | Value | Value | Value |
---|---|---|---|
@{LIST} | this | list | has |
… | quite | many | items |
Test Case | Action | Argument | Argument | Argument |
---|---|---|---|---|
Example | [Documentation] | Documentation | for this | test case. |
… | This can get | quite | long... | |
[Tags] | t-1 | t-2 | t-3 | |
… | t-4 | t-5 | ||
Do X | one | two | three | |
… | four | five | six | |
${var} = | Get X | 1 | 2 | |
… | 3 | 4 | 5 | |
… | … | 6 |
Примечание. Как правило, только в Robot Framework 2.5.2 или более поздних версиях разрешены пустые ячейки перед многоточием. В более ранних версиях внутри цикла for допускалась только предыдущая пустая ячейка.
Разделить данные в таблице reSt
Существует два синтаксиса таблиц, которые можно использовать для создания тестовых данных в текстовых документах, помеченных как таблицы reST. RF предусматривает, что при использовании простого табличного синтаксиса в дополнение к... первая ячейка строки продолжения должна использовать \ или.... Вот пример простого формата таблицы с использованием reST:
Для синтаксиса квадратного формата первая ячейка строки продолжения может быть пустой. Если это таблица HTML, вторая ячейка должна включать....